I am trying to build a node.js
project in travis-ci. this is my .travis.yml
file:
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
I get the following build error right on the beginning:
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
Probably because there's something wrong with my yml file and it tries to use the default ruby builder.
I don't think the file is not valid yml file as I have checked it with yml validator at http://yamllint.com/
Something wrong with my Travis specific conf ?
My package.json
looks like this :
{
"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"
}
}
EDIT:
If you are looking for a way to automatically deploy node.js app to Heroku using Travis-CI, look for the answer I included for a working .travis.yml
file
Your .travis.yml
file does not validate; you can validate it at http://lint.travis-ci.org/.
Found an issue with the node_js key:
Detected unsupported Node.js versions. For an up-to-date list of supported Node.js versions, see Travis CI documentation at http://bit.ly/travis-ci-environment
Try using 0.8.x
.
For some weird reason, I have noticed a single space at the beginning of the file that wasn't there before (I swear :). This is what must have caused the error.
The weird thing was that when I was changing node version from 0.8
to 0.6
the validator didn't notice the error. Maybe it's a bug in the validator.
Anyway, I have also succeeded in automating the deployment of my node app to Heroku. I haven't found any documentation around the web regarding the process of doing it (specifically for node), so I am attaching the .travis.yml
file that worked for me. Notice that I didn't have to add any tests for my app, it worked fine without it:
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
EDIT:
I have recently moved from Travis.ci to Drone.io. If you are looking for a automatic deployment to Heroku from Github, you should check it out, It works great and was easier to set up IMO.
https://drone.io/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With