SCM Heaven - Continuous Integration

Posted on December 18th, 2007 in FaxIt Nice by declanshanaghy

With the small development team we have here in 350 Nice I always pretty much dismissed the advantages of running a continuous integration (CI) server. But every now and then a build does break, and it does affect people. This weekend i explored the magical world of CI. And i only scratched the surface i know that much.

I started off with Cruise Control. It’s abit wieldy to setup. It comes in two flavors as is usual with OSS -binary and source. I delved straight into the binaries and it soon became apparent that the documentation was so lacking that setting it up was going to be an adventure in documentation discovery and config file editing. If there’s one thing i hate about any applicaton it’s having to edit the config files directly. THERE HAS TO BE AN INTERFACE IF YOU WANT IT TO BE I+WIDELY ADOPTED!!!! Niggggghhh. Anyway after getting it running from following the howtos for the source version I finally got a chance to explore. Here are my observations:

Pros

  1. JMX interface for build deployment
  2. Separate reporting tab for Unit Tests
  3. Direct access to build artifacts from the reporting app
  4. RSS feeds for build status

Cons

  1. No config file editing interface.
  2. No user/role/permissions model - reporting web app has to be secured at the servlet container/web server level
  3. Support for Maven projects serverly limited

I finally stumbled accross Continuum from the Apache Software Foundation. Of course being from ASF things were very much more in order here. A nice interface for configuraing users/projects/schedules and even build templates. It is lacking in a few of the things that Cruise Control has though. So in an ideal world what I’d like to see is those few “nice” features copied from Cruise Control.

Pros

  1. Highly polished end user interface
  2. Lots of configuration UI’s
  3. Full support for Maven1.x & 2.x projects
  4. Support for ant and “shell” project build tools.

Cons

  1. No access to project build artifacts.
  2. No RSS feeds for project build status

Post a comment