Monday, October 27, 2008

Hudson, a continuous build tool

Software configuration management(SCM) is the corner stone of every good software development. SCM is a generic term which includes Source managements (CVS, SVN, Mercurial, ...), issue management (Mantis, Bugzilla, Jira, ...), CMS for the documentation management (Joomla, Drupal, ...), version management through the use of methods (scrum, xp, ...), and finally build management, ie the ability to generate automatically production ready software from the source. It is especially needed when development is test-driven, or continuous-build-driven.
To perform this goal we have many possibilities :
  • hand-written scripts in whatever language
  • use of ANT, GANT, Maven, ...
  • use of continuous build dedicated tools like Continuum, Luntbuild, CruiseControl ; these tools generally use the previous possibilities to perform the builds.
A quite new project has emerged this year : Hudson.

As the introduction says : "Hudson monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Hudson focuses on the following two jobs:
  1. Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Hudson provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases the productivity.
  2. Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Hudson keeps those outputs and makes it easy for you to notice when something is wrong."
See the demo videos.
For french readers, a good tutorial is available here.
It also exists an eclipse plugin for Hudson.

No comments: