[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