2012-11-21 47 views
5

我正在尝试在travis-ci中构建node.js项目。这是我的.travis.yml文件:无法使用Travis-ci构建和部署node.js项目 - 没有找到Rakefile

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 [email protected]:*****.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 

我得到下面的生成错误权的开头:

没有找到Rake文件(寻找:Rake文件,Rake文件,rakefile.rb, Rakefile.rb)

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

我不认为该文件是不是因为我在http://yamllint.com/

有毛病我特拉维斯特定的conf与阳明验证检查其有效阳明文件?

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" 
    } 
} 

编辑:

如果你正在寻找一种方式来使用特拉维斯-CI的Node.js应用自动部署到Heroku的,寻找答案我包括一个工作.travis.yml文件

+1

您是否在使用NPM?如果是这样,你的package.json如何? – Odi

+0

@Odi将文件添加到问题 – Michael

+0

如果我没有错,如果您将node_js定义为语言,但您没有在您的package.json脚本中指定travis,则会调用'npm test':{“test” :“./my_test_script.js”}'。或者你期望被称为什么? – Odi

回答

6

您的.travis.yml文件不验证;你可以在http://lint.travis-ci.org/进行验证。

找到与问题node_js键:

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

特拉维斯CI文档尝试使用0.8.x

+0

感谢您的工具,非常有用。在更改为'0.8.x后,我仍然遇到了node_js键的问题,并且构建结果相同。但是将版本更改为'0.6'可以解决此问题。特拉维斯在文档中说0.8支持,所以我不明白 – Michael

+0

我都不是:https://github.com/mozilla/browserid/pull/2238 –

+0

标记为答案,因为这是让我最接近找到问题与我的文件 – Michael

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 [email protected]: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/

+1

哎呀,很高兴你知道了。由于heroku事情,我previuosly [描述在另一个答案中的步骤](http://stackoverflow.com/a/12849594/549755)。你可以通过[加密你的'HEROKU_API_KEY']来改进你的脚本(http://stackoverflow.com/questions/9338428/using-secret-api-keys-on-travis-ci/12778315#12778315)。 – Odi

+0

@Odi好点,我正在努力安装红宝石和Travis宝石,使这件事情的工作。有更容易的方法吗 ? – Michael

+0

不是我所知道的。 'gem install tr​​avis'很简单,我会说。如果你遇到麻烦,你应该在SO上发布另一个问题。 – Odi

相关问题