[Chicago] CIT, but not BuildBot

Jason R Huggins JRHuggins at thoughtworks.COM
Wed Oct 4 00:15:38 CEST 2006


On Oct 3, 2006, at 10:12 AM, Chris McAvoy wrote:
> > Anyone run across any "lightweight" continuous integration testing
> > thingees other than BuildBot?  BB seems pretty hefty to set up.  If
> > there's a lighter thing out there, I'd really prefer to not have to
> > set up a whole BB juggernaut.

On Oct 3, 2006, Brian Ray replied:
> I have used and like CruiseControl <http:// 
> cruisecontrol.sourceforge.net/>. Just because its JAVA'esk it can 
> still do most things I want from ant scripts. Also, others have done 
> some crazy stuff. I think Jason Huggins showed this as part of his 
> selenium talk at Google last month. Although, I am unsure how it 
> tangled in.

/disclaimer/ -> I work for ThoughtWorks, creator/sponsor of CruiseControl 
(and Selenium and Buildix). Opinions expressed here are mine, not my 
employer's. :-)

For my Selenium demo, I used Buildix (a Knoppix based Linux running Trac, 
Subversion, and CruiseControl) running as a virtual machine. Running CC 
under Buildix under virtualization made the installation learning curve 
significantly less than starting from scratch... Cruise's Java-ness was 
mostly hidden from me when I only had to deal with it as a Linux VM. 
However, there was no escaping the XML configuration. Luckily, Buildix 
came with a default config and helpful setup scripts and some docs to make 
this easier. It's still not "1-click install" easy, but it's not toooo 
bad, if you're no stranger to a Linux shell.

I wouldn't call CruiseControl lightweight, though. The XML push-ups you 
have to do to configure your build and output reports will make your brain 
cells and fingers very sore. (But once you get it setup and running, 
though, it ain't so bad. You'll probably spend 1-3 days getting everything 
setup correctly). Cruise's API for any crazy buildish wish you might have 
is very complete (including remotely triggering Lava Lamps to turn on via 
X10 devices), but all that power comes with the cost of having to deal 
with yucky XML Ant files. I wish I had the time to slap some Jython in 
there and replace all that XML config with simple Python scripts... 
Speaking of which...

For a "lightweight" build tool, there's nothing simpler than using Windows 
Task Scheduler (or cron on *nix) plus a Python script full of functions 
that do stuff in order. I then schedule the Python script to run either 
once an hour or hooked into Subversion as a post-commit hook. For 
collaborating with others, I email the build results to a project build 
mailing list and/or update an RSS feed on the webserver. If your team is 
small (or just you)... this is probably simple enough...

If your project team is 4 or more people (meaning your intra-team 
communication needs might be higher), you'll probably benefit from 
something medium-to-heavyweight like CruiseControl. One of Cruise's nice 
subtle features is that it's smart enough to wait for a "quiet" period 
(user-configurable in XML, of course) before running a build... On active 
projects, that's a neat feature... If you went the cron/Python route, 
you'd need to code in those smarts yourself, or cheat by running on a set 
schedule (hourly, daily, 30-minute-ly) to triggering multiple concurrent 
builds.

So, if you're team is small... (Task Scheduler or Cron) + Python + 
email/RSS notification might be good enough for your needs.
If your team is medium size, then the time spent configuring Cruise is 
probably worth it. I would love it if more Pythonistas checked out Cruise, 
though. Then my dream of swapping out XML/Ant with plain old Jython might 
just come true someday. :-)

If you're really passionate about this subject, I'd suggest you pick up 
(or download) a copy of Pragmatic Automation [1] by the PragProggies. In 
the book, they recommend the same approach (cron/script for the 
simple/stupid stuff, CruiseControl for the medium/non-stupid stuff). The 
book goes into detail on how to install and setup Cruise from scratch. 
However, it was written before Buildix came along, so some steps are 
thankfully obsolete and now easier.

[1]: http://www.pragmaticprogrammer.com/sk/auto/

I haven't used BuildBot in anger yet... But man, it's status page of 
builds is fugly. Darn computers, I think I'll just quit and go into 
farming.

-Jason "I hope this came off as educated opinion and not astro-turfing" 
Huggins :-)


More information about the Chicago mailing list