Continuous Integration

By on September 10, 2004

We’ve started using Continuous Integration testing on a project I’m working on. Had you asked me yesterday, when I was setting the #@$! thing up for my project, I wouldn’t have had much nice to say about it. But now, whenever I merge my code up to the integration branch, I get an email saying if the code compiled successfully and passed unit testing. Since you can merge up changes a little at a time (once you get your ‘big merge’ out of the way), you can find out really quickly if you broke anything.

The system we’re using is CruiseControl.Net, which is pretty easy to work with (despite my problems). Their web site appears to be down at the moment, but here’s an article describing how these systems operate.

Since they utilize Nant, a .Net port of the Ant build system, you can have the integration system do almost anything you can imagine. You could have it compile all the code, run unit tests, deploy it to integration, build documentation, and make a deployment package that can be used if the build is deemed road-worthy. Mike Clark suggests wiring Lava Lamps up to indicate the result of the last build. Perhaps we’ll program an Aibo to go and bite whoever checks in bad code…