If you're consistent user of GitHub in your development or deployment activities, Travis CI is something that you really ought to check out at this point because of it's unique features like tight GitHub integration (in fact, it it's the only way to get code into testing and you can only build through GitHub). That's because today they just added support for Java, Scala, and Groovy projects.
Stepping back for a second, you've probably not heard of Travis CI because it started as a Ruby project which then added support for Erlang, Clojure, Node.js and PHP. You could still build other projects with your own commands, but the built in support really helps.
But now there's no reason for Java folks not to check out the unique benefits in Travis CI, which include: http://about.travis-ci.org/docs/user/ci-environment/
- Host OS is not affected by test suites
- No state persists between runs
- Passwordless sudo is available (so you can install dependencies using apt and so on)
- It is possible for test suites to create databases, add RabbitMQ vhosts/users and so on
The Travis environment provides a lot of mature tools and libraries such as MySQL, Postgres, Redis, MongoDB, RabbitMQ, and much more. You don't have to bother setting up your own CI server because it's hosted!
And also, here is the usual build workflow for Travis CI:
- Clone your repository from GitHub
- (If applicable) pick language/runtime version to use
- Run before_install commands (can be more than one)
- Install dependencies. Travis will try to detect whether project uses Gradle and SBT and run their respective commands, falling back to mvn install. You can override the command using the install key in your .travis.yml.
- Run one or more before_script commands.
- Run the script command, e.g. gradle check or mvn test, falling back to ant test. This too can be overriden in .travis.yml.
- Report the build has finished running.
That ought to give you a good idea of what you're getting into with this tool.
For Java projects, Travis CI now provides:
- OpenJDK 6
- Maven 3, SBT 0.11.x
- Gradle (currently 1.0 Milestone 8)
For more specifics on what is supported and how to get an example up and running with various JVM languages and their libraries be sure and visit these guides: