akka/akka — pull request #399 by gildegoma (2012-04-17 16:15:38+00:00)
Title: Integrate with Travis CI

## Important Preamble

Just while opening the pull request, I noticed that Travis JVM environment meets [*again*](http://travis-ci.org/#!/gildegoma/akka/builds) some memory usage troubles that interrupt the build (see details in additional notes below). Even though, I open this pull request now to check first if Akka Project is interested in using Travis for community-driven continuous integration. If such interest is confirmed, I shall try to fix as soon as possible this Memory issue certainly with active help from Travis Team (and Akka Team?).

I thus propose following workflow:

1. Akka Project will confirm interest for Travis CI (or reject the proposal by closing this PR)
1. I (or we :-) try to fix Travis CI Environment for large-memory footprint SBT-based projects (like Akka ;-)
1. Finally: Merge this request when Akka safely builds on Travis

**Note:** I'll first check if [JVM worker virtual machines have been recently upgraded](http://about.travis-ci.org/blog/upcoming_ubuntu_11_10_migration/), which possibly could introduce a regression since my [last successful build on 16.04.2012](http://travis-ci.org/#!/gildegoma/akka/builds/1100750).

## Pull-Request Details

Since Travis CI now [officially supports Scala](http://about.travis-ci.org/blog/announcing_support_for_java_scala_and_groovy_on_travis_ci/), I invite you to configure main (active) branches, to get all the benefits of this amazing Continuous Integration platform.

**Mini-HowTo plug a github project to Travis CI** (excerpt from [Travis documentation](http://about.travis-ci.org/docs/user/getting-started/)):

1. Sign in http://travis-ci.org/ through GitHub OAuth (follow the Sign In link)
1. Activate GitHub Service Hook from you [profile page](http://travis-ci.org/profile)
1. Add .travis.yml file to your repository

Since Akka branches support only one specific version of Scala, I had to override defaults in `.travis.yml`. If in the future a same branch supports a matrix of Scala versions, you can easily configure Travis to run a specific build for each version (see [Scalatra example](https://github.com/scalatra/scalatra/commit/3ddbf152b4ab33872cd8f7a0efa9b0b3b77f81c1) or [Guide: Building a Scala project with Travis](http://about.travis-ci.org/docs/user/languages/scala/)).

### Additionnal Notes

* I thought that now Travis Environment was ready to safely build Akka, but there are still sometimes memory usage problem to fix:
* Example of [build that failed due to memory limitation](http://travis-ci.org/#!/gildegoma/akka/builds/1112706/L582)
* Example of [successful build](http://travis-ci.org/#!/gildegoma/akka/builds/1100750), testing exactly the same code stand, as failing example above.
* I also run the full test suite on **recent release 2.0.1**, and noticed that **1 test example fails** in akka.routing.ResizerSpec. More details there:
* http://travis-ci.org/#!/gildegoma/akka/builds/1100609/L636
* http://travis-ci.org/#!/gildegoma/akka/builds/1100609/L1459

## Last but not least: Thanks to Akka Team!

My Akka fork has been heavily used during the creation of Travis builder for Scala (especially for SBT/JVM memory tuning). I take the opportunity of this PR to congratulate all Akka contributors. With such nice set of Tests/Specifications, I think it really makes sense to take advantage of Travis and effortless continuous integration.