pjf/exobrain — pull request #23 by mmcclimon (2014-02-09 22:47:40+00:00)
Title: Add Travis CI integration

Ok, I *think* this is what is needed to get Travis CI up and working (for issue #21). It's a bit convoluted, so here are the basics:

- This depends on my pull request from earlier (#22), about upgrading to LibZMQ3. The Travis prereqs won't build with version 2 either.

- Adds a `.travis.yml` file, to tell Travis what to do. This necessitated some changes in `dist.ini`: I had to tell GatherDir to include dotfiles, and tell PruneCruft to keep the Travis file. This means that the `[@Basic]` section had to be modified so that things didn't get added twice.

- Adds `cpanfile` support to `dist.ini`. This adds CPANFile to the build dependencies, which dumps a `cpanfile` into the dist. This makes testing on Travis way faster: instead of having to install dzil on every build (!), it can just install the prerequisites from the automagically-generated cpanfile. This dropped test times from ~20 minutes to ~5.

- Finagles with git settings. Because the build process generates a cpanfile, this adds `[Git::CommitBuild]` into the dist, which automatically commits on a branch `build/branchname` every time you run `dzil test`, `build`, or `release`. There may be some other funny business you can do with having it push `build/*` branches automatically, but I'm not exactly sure (I'm not really a dzil user!).

Let me know what you think! Also thanks to [Alex Balhatchet's blog post](http://blogs.perl.org/users/alex_balhatchet/2013/04/travis-ci-perl.html), from which I ripped a bunch of this.