As you might expect from the name, CruiseControl.rb performs a similar function to CruiseControl (Java) and CruiseControl.NET, but is written in Ruby (it’s actually a Rails application). From a quick play it looks to have quite a few advantages over the original (I’ve never had cause to look at the .NET version):
- At least as easy to get started with as the binary distribution of CruiseControl.
- Ludicrously simple to add a new project (just tell it where the repository is).
- Builds Rails applications with no configuration.
- Only needs a one-line config change to build anything &ndash not just Ruby – as long as there’s a single command to do it.
- Clean, AJAXified user interface.
- Publishing artifacts is as simple as making sure the build drops them into the directory specified by$CC_BUILD_ARTIFACTS.
As an aside, it also shows that Rails isn’t just useful for building database-centric applications.
It all looks so simple that you wonder what’s missing, but it seems to do everything most people need from a continuous integration server. Anyone who’s using Subversion and doesn’t need to run a huge distributed build should at least have a look – all that complicated config.xml editing could be a thing of the past!