Posts Tagged ‘cruisecontrol’

Happy with Hudson

1 June 2008

I’ve been using Hudson as a continuous integration server now for about a week and I am pretty happy with it.
Currently, I run CruiseControl on one machine and Hudson on another one. Both are building three branches of a large Java project from a Subversion repository (trunk, current release, and an integration branch for the current release). During the last week, we had two broken builds due to incomplete commits to the repository, which both systems reported within half an hour. And both systems reported, when the build was fixed again.
So, both systems fulfill their main purpose.

In addition, Hudson has some features, that I didn’t actually miss in CruiseControl until I discovered them in Hudson:

  • A currently ongoing build can be stopped from the UI. Hudson is quite responsive here: Usually, this only takes a couple of seconds. It seems as if you don’t have to wait until the current ant target is completed.
  • There is a “Shutdown Mode”. Once activated, no new projects are build. In CruiseControl, I usually waited until the svn update within the build file was complete and then killed the process.
  • Hudson projects handle svn updates and checkouts themselves. I always found CruiseControl lacking in this regard. Even though it is easy to have a target in a special build file to update the checked-out project, why not let the tool do the job? To set up a new project in CruiseControl, you need to add the project to the configuration and check-out the sources. In Hudson you create the project or duplicate it from an existing project (quite handy!) and run the project. Hudson takes care of the check-out.
  • Hudson handles removing the checked-out copy when deleting a project.

Hudson: Love on first sight?

18 May 2008
I recently discovered Hudson the “Extensible continuous integration engine” and fell in love with it.

Currently, I’m using CruiseControl for continuous integration and Anthill OS for our nightly build. CruiseControl does an incremental build on our Java sources, so that developers usually get feedback about their latest commits in less than an hour. The nightly Anthill build is a clean build that performs additional steps like generating user documentation or building the installers and takes much longer.

Lately, I’ve been looking for a replacement for Anthill OS and for CruiseControl. Up to now, I’ve taken a look at Continuum and Luntbuild and now at Hudson. I’ve started with trying to replace CruiseControl due to the shorter turn-around cycles for the CI build and so far, I’ve been very pleased with Hudson:

  • Setting up the project was pretty easy.
  • Working with Hudson is a pleasure. It’s amazing how aesthetically pleasing and consistent the web ui is.
  • Hudson seems faster in some respects than CruiseControl, e.g. the summary reports for PMD errors.

I’m just missing two features (or haven’t been able to find them yet):

  • Every so often (e. g. every tenth build) I’d like to do a clean rebuild of the project
  • There seems to be no user mapping between SCM users and e-mail addresses. When the build breaks, I’d like to inform the developers who committed sources since the last successful build about it.

Let’s see how long this love story lasts…