Monday, May 24, 2010

hudson-ci

web interface on a continuous integration system for building, testing, revision tracking, and distributing code. if i ever have any users for my code, and especially if i have other people writing code, i need to check it out. too bad it's all java.
buildbot is apparently more python-oriented, and bitten (for trac) is in python. but hudson seems to get the vote for easy install and customization. here's a useful summary:
We use both Buildbot and Hudson for Jython development. Both are useful, but have different strengths and weaknesses.
Buildbot's configuration is pure Python and quite simple once you get the hang of it (look at the epydoc-generated API docs for the most current info). Buildbot makes it easier to define non-testing tasks and distribute the testers. However, it really has no concept of individual tests, just textual, HTML, and summary output, so if you want to have multi-level browsable test output and so forth you'll have to build it yourself, or just use Hudson.
Hudson has terrific support for drilling down from overall results into test suites and individual tests; it also is great for comparing test output between builds, but the distributed (master/slave) stuff is comparatively more complicated because you need a Java environment on the slaves too; also, Hudson is less tolerant of flaky network links between the master and slaves.
So, to get the benefits of both tools, we run a single instance of Hudson, which catches the common test failures, then we do multi-platform regression with Buildbot.

No comments: