无法使用Travis-ci构建和部署node.js项目 - 找不到Rakefile

时间:2012-11-21 08:39:58

标签: node.js heroku travis-ci heroku-toolbelt

我正在尝试在travis-ci中构建一个node.js项目。这是我的.travis.yml文件:

language: node_js
node_js:
  - 0.8

after_script:
  # Install the Heroku package (or the Heroku toolbelt)
  - npm install heroku
  # Add your Heroku git repo:
  - git remote add heroku git@heroku.com:*****.git
  # Add your Heroku API key:
  - export HEROKU_API_KEY=KEYHERE
  # Turn off warnings about SSH keys:
  - echo "Host heroku.com" >> ~/.ssh/config
  - echo "   StrictHostKeyChecking no" >> ~/.ssh/config
  - echo "   CheckHostIP no" >> ~/.ssh/config
  - echo "   UserKnownHostsFile=/dev/null" >> ~/.ssh/config
  # Clear your current Heroku SSH keys:
  - heroku keys:clear
  # Add a new SSH key to Heroku
  - yes | heroku keys:add
  # Push to Heroku!
  - yes | git push heroku master

我在开头就得到了以下构建错误:

  

找不到Rakefile(寻找:rakefile,Rakefile,rakefile.rb,   Rakefile.rb)

可能是因为我的yml文件出了问题,它试图使用默认的ruby构建器。

我认为该文件不是有效的yml文件,因为我已在http://yamllint.com/使用yml验证器检查了它

我的特拉维斯特定配置有什么问题吗?

我的package.json看起来像这样:

{
  "name": "csnc",
  "description": "csnc",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.x",
    "ejs": ">=0.0.0",
    "express-partials": ">=0.0.0"
  },
  "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}

修改

如果您正在寻找一种使用Travis-CI自动将node.js应用程序部署到Heroku的方法,请查找我为工作.travis.yml文件包含的答案

2 个答案:

答案 0 :(得分:6)

您的.travis.yml文件未验证;您可以在http://lint.travis-ci.org/验证它。

  

发现 node_js 键的问题:

     

检测到不受支持的Node.js版本。有关受支持的Node.js版本的最新列表,请参阅http://bit.ly/travis-ci-environment上的Travis CI文档

尝试使用0.8.x

答案 1 :(得分:1)

出于一些奇怪的原因,我注意到文件开头的一个空格以前没有(我发誓:)。这是必然导致错误的原因。

奇怪的是,当我将节点版本从0.8更改为0.6时,验证程序没有注意到错误。也许它是验证器中的一个错误。

无论如何,我还成功地自动部署我的节点应用程序到Heroku 。我还没有在网上找到关于这个过程的任何文档(特别是节点),所以我附上了适用于我的.travis.yml文件。请注意,我没有为我的应用添加任何测试,没有它就可以正常工作:

language: node_js
node_js:
  - 0.8

after_script:
  # Install the Heroku package (or the Heroku toolbelt)
  - npm install heroku
  # Add your Heroku git repo:
  - git remote add heroku git@heroku.com:HEROKU_REPO_HERE.git
  # Add your Heroku API key:
  - export HEROKU_API_KEY=ENTER_KEY_HERE
  # Turn off warnings about SSH keys:
  - echo "Host heroku.com" >> ~/.ssh/config
  - echo "   StrictHostKeyChecking no" >> ~/.ssh/config
  - echo "   CheckHostIP no" >> ~/.ssh/config
  - echo "   UserKnownHostsFile=/dev/null" >> ~/.ssh/config
  # Download and install Heroku toolbelt locally
  - wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
  # Clear your current Heroku SSH keys:
  - heroku keys:clear
  # Add a new SSH key to Heroku
  - yes | heroku keys:add
  # Push to Heroku!
  - yes | git push heroku master

编辑:

我最近从Travis.ci搬到了Drone.io。如果你正在寻找从Github自动部署到Heroku,你应该检查它,它工作得很好,并且更容易设置IMO。

https://drone.io/