Shared publicly  - 
 
An update on using Travis CI with haskell

Travis CI grabs a copy of your code every time you push to github, builds it in a fresh virtual machine, runs the test suite and emails you the result. You can watch the build console in realtime on travis-ci.org, and access previous build logs.

Yesterday I set up zoom-cache to be automatically tested, posted here, logged a bug report and chatted on #travis IRC with @michaelklishin. He updated the service to run "cabal update" when building vm images, and added $HOME/.cabal/bin to the $PATH: https://github.com/travis-ci/travis-ci/issues/461

The vm images are rebuilt every week or so, so the package database used will never be more than a week out of date. If you really need to test against bleeding-edge packages then you can still explicitly "cabal update".

Otherwise, unless you need to install extra build or test tools, you now don't need to specify an install stanza in your .travis.yml file; you can just use the one-liner "language: haskell".

So, assuming you have a cabalized project on github:

1. log in to travis-ci.org using your github auth and select the project

2. echo "language: haskell" > .travis.yml && git add .travis.yml && git commit && git push

3. watch it build at travis-ci.org
7
Felipe Lessa (meteficha)'s profile photoThomas Tuegel's profile photoAristid Breitkreuz's profile photo
3 comments
 
I've been having problems with libraries that my test suite needs but my library doesn't. Is there an easy way of telling cabal to install everything? Unfortunately 'cabal install --enable-tests' won't work since this will enable the tests of all libraries being installed, which often fails.
 
Now http-types is being automatically tested by travis, too. :)

+Felipe Almeida Lessa I've added a line to the .travis.yml file where I explicitly list the test-time dependencies... Not nice, but it works.
Add a comment...