The second presentation at the CI Cage Fight was Paul Julius, talking about CruiseControl. I think of CruiseControl as the daddy (or at least an uncle) of Continuous Integration servers. It’s the oldest Java CI server that I know of. As an open source project I think it opened the way for projects to adopt automated CI.
One of the unique features is the support for so many version control systems. I believe it supports more VCS systems (everything from Accurev to VSS) than any other CI server. CruiseControl is also very seasoned: it’s been deployed in many organisations (over 130,000 downloads for the latest version) and a lot of those inevitable wrinkles have been ironed out.
The two other things that I noted down from Paul’s talk were the flexibility (remember, CruiseControl was written as a framework, not a product for sale) and the useful file based configuration. The parsing of the XML file is very good. I haven’t had many situations where I have managed to confuse the server so much that it couldn’t tell me where the errors in the file were (I can’t say that about any other CI server). It also has some brilliant features for reducing duplication in the file, which I have gratefully used.