Update: 26/03/2013 Tim in the comments points out that if you add grunt-cli
to your dev-dependencies
in your package.json
that will also achieve the same solution. I’d recommend his solution here instead of the below.
I thought I’d post a quick set of tips on how to setup http://travis-ci.org on a grunt plugin project as I’d spent a while trying to find the answer.
My problem was that when I followed the travis guide to setup a node.js project all it told me I needed in my .travis.yml
was:
language: node_js node_js: - "0.8"
However I kept getting failing builds which said:
> grunt test sh: 1: grunt: not found npm ERR! Test failed. See above for more details. npm ERR! not ok code 0
After a bit of digging around in some other projects it turns out you need one extra thing for a Grunt 0.4.x project to work:
language: node_js node_js: - "0.8" before_script: - npm install -g grunt-cli
After adding that travis was able to find grunt and I was back to green.
Feel free to look at https://github.com/mattgoldspink/grunt-sencha-dependencies for a working build setup.
Maybe would be better to run grunt-cli locally – https://github.com/gruntjs/grunt-cli
“test”: “node ./node_modules/.bin/grunt test”,
@Daniel – that’s true. I basically copied what I found the grunt project doing and so assumed that’s the right way, but you make a good point. If I do it your way then I don’t need to install it globally. However I assume (perhaps wrongly) that travisci would clean up any global installations of modules people make and ensure everything is sandboxed for all jobs.
Yes it cleans up, see http://about.travis-ci.org/docs/user/build-configuration/#Build-Lifecycle
It’s even easier than that. You can just install it as a devDependency and it will automatically get sourced to your path.
https://github.com/tbranyen/backbone.layoutmanager/blob/master/package.json#L21
@Tim, Thanks that is definitely the way to go!