Some of you, developers, are acquainted with Continuous Integration, others do not, but one thing both have in common: the need of an easy mechanism to perform and monitor repetitive tasks in one or several projects. From building to testing, from keeping your project and dependencies versions right to logging the entire process, everything together is a task, an integration of from-development-to-deliver processes.
I didn’t know Continuous Integration itself, but everyday I have been dealing with something that resembles it. Man, it is a pain in the ass..
My employer made some colleagues of mine to use a tool – which name I can’t recall – but they keep complaining about it. So I wandered through the Web searching for something better. I found Hudson!
Hudson is a Java Web application very easy to “install”. All you have to do is to run java -jar hudson.war and there you go, point to http://localhost:8080 and you’ll have a very friendly management Web UI. Another way of running Hudson is through Java WebStart by running this file or installing it into a servlet container, like the one provided by Glassfish.
After you get it up and ready, you can start configuring you Hudson instance to match your development environment. For instance, let’s say you use:
- Maven/Ant/Nant – build tool;
- CVS/SVN/Git/Mercurial/Clearcase – SCM;
- JUnit/NUnit/Test-NG – unit-testing;
- Emma/Cobertura – code-coverage;
- Many others including Checkstyle, IRCbot or Jabber build triggers, e-mail and IM notifications and even the ability to fire-up a VMWare virtual-machine, build your project and shut it down.
Well Hudson is able to do that and much more, just check out their plug-in list! My favourite is the JIRA plug-in but unfortunately I haven’t been able to find a Bazaar plug-in and be truthfully happy.
Also it supports distributed builds and tracking dependency and release binaries versions. Isn’t it amazing? Well JBoss guys think so!
Give it a try and give me your feedback 😉