Tuesday, June 5, 2007

Let the build flow like the Hudson river.

Today at work I found a wonderful continuous build-tool. One will often start a new build and regression test after each check in to the revision control repository. The tool I found is called Hudson. Some of the feature I have found useful are:
* Reporting by e-mail or jabber when something goes wrong (or when it goes right)
* Builds can start based on time or on events.
* It gives you nice statistics about your build
* For Java projects there are good plug-ins to get statistics about code coverage using Emma and regression testing using japex and JUnit.
* It works against revision control systems
* It can tag the builds, depending on the result
* You can see history of build, and control when they should be purged
* It's easy to install, no external needs except Java.
* Hudson can be used with non Java applications too. (Hudson have support for maven, ant and shell script from the beginning.)
* It looks easy to write your own plug-ins
* A remote XML-API exist.
* It's open source.

I have not found any big drawback. It would have been nice to have some authorization mechanism, but that can be solved by deploying Hudson inside a J2EE/JSP-container.

I think I will try to use it in some python and bzr project on Ubuntu at home too, and not only at work when using Java.

No comments: