Friday, May 11, 2007

Building is fun with Hudson

I've used last year Cruise Control and really liked the feeling a continuous integration and build system gives you. There you have a central place to see the health of the project (unit tests), linked to the VCS and a build server.

This year, I've re-evaluated Continuum and Cruise Control and found out that I still had to work with some XML files to make it work. Plus, notification is exceptionally hard to get right.

So, everything was paused until I found Hudson. It's a web-application (like the other two), quite new and active (unlike the other two).

It has the best out-of-the-box experience. Just deploy the WAR and configure your project. Continuum comes close here with Cruise Control third.

Since NetBeans already generates proper ant targets for everything including tests, I just need to configure what ant task to run, which are the build artifacts and where to get the junit results from.

Of course, I did stumble on some problems:
- Running multiple ant targets it's impossible (ie. multiple build files) so you have to make another script that calls the others.
- make sure junit.jar is in ant's classpath.

But Hudson is impressive. Help messages at each step, SVN integration (with authentication), nice charts.

It could still use some more reports and plugins but I think it has a bright future. I might even write some plugins myself if it gets selected for the build-server.

1 comment:

Kohsuke Kawaguchi said...

Glad to hear that you liked Hudson.

Just to clarify, you can easily invoke multiple Ant targets in the same build script. I think your situation is to invoke multiple targets spanned across multiple build files, and to do that, you'd either do what you did, or you can use the shell script invocation to drive Ant.

The Trouble with Harry time loop

I saw The Trouble with Harry (1955) a while back and it didn't have a big impression on me. But recently I rewatched it and was amazed a...