我正在尝试在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
文件包含的答案
答案 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。