无法使用Travis ci构建和部署node.js项目-未找到Rakefile
我正试图在travis ci中构建一个无法使用Travis ci构建和部署node.js项目-未找到Rakefile,node.js,heroku,travis-ci,heroku-toolbelt,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:**
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 builder
我不认为该文件是无效的yml文件,因为我已经在上用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
文件提供的答案。Travis.yml文件未验证;您可以在上验证它
发现节点_js键存在问题:
检测到不支持的Node.js版本。有关受支持的Node.js版本的最新列表,请参阅
尝试使用
0.8.x
出于某种奇怪的原因,我注意到文件开头有一个以前没有的空格(我发誓:)。这一定是导致错误的原因
奇怪的是,当我将节点版本从0.8
更改为0.6
时,验证程序没有注意到错误。可能是验证器中的错误
无论如何,我也成功地将我的节点应用程序部署到Heroku。我还没有在网上找到任何关于这个过程的文档(特别是node),所以我附上了为我工作的.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
您正在使用NPM吗?如果是这样,你的package.json看起来如何?@Odi将该文件添加到问题中如果我没有错,travis将调用
npm test
,如果你将node_js定义为语言,但你没有在package.json“scripts”:{“test”:“/my_test_script.js”
。或者你希望被称为什么?@Odi我已经创建了一个测试,并将它添加到包中。json
仍然没有帮助。Travis仍在使用RubyWorker:ruby2.worker.Travis ci.org:ruby-4。travis-ci也发现了这个问题:但是已经修复了,所以不知道如何调试。这只是travis lint的修复,实际上这不是travis的问题,只是使用了linting工具。travis上有一些节点为0.8的项目可以运行。谢谢你的工具,非常有用。更改为0.8.x
后,我仍然会遇到node_js key的问题,构建结果是相同的。但是,将版本更改为0.6
解决了这个问题。Travis在文档中说支持0.8,因此我不理解将此标记为答案,因为这使我最接近于找到我的文件的问题哦,很高兴你找到了答案。因为heroku的事,我以前。您可以通过@Odi改进您的脚本。好的一点,我正在努力安装ruby和travis gem以使其正常工作。有更简单的方法吗?我不知道<代码>gem安装travis很简单。如果你有问题,你应该发布另一个问题。我有这个问题,这应该不再是一个问题,因为它已在最新版本的宝石修复。