05 March 2009

Use an automated continuous integration system

A automated continuous integration system is a system that can build and run all kinds of tests and report tools on your software. My opinion is that you should always use this if you are more then 1 person developing a software. It can help you greatly to visualize when things goes wrong. For example it can automatically run JUint tests on the code and report when a test is broken. If you have many reporting tools (for example JUint, Findbugs, PMD, Cobertura code coverage etc) it is sooo much easier to rely on a automated continuous integration system to run all these tools.

Another example when this is useful is when you have some kind of license restriction on how a compiler can be used (ARM compiles for example can be expensive and you can only afford to install it on one machine).

I've tried two continuous integration systems: CruiseControl and Hudson. I first tried CruiseControl since it is the mother of continius intregration system. CruiseControl probably has the best support for 3rd party tools. But is has a big drawback: it is difficult to use. You have to manually edit CruiseControl build control files when creating new projects.

A better alternative is Hudson, the tool I'm currently using. Everything can be done in the Web GUI and it is rather easy to do so. The 3rd party support for tools is probably not as good, but is has the most essential so most should find it sufficient.

Both Hudson and CruiseControl have a API that can be used to create own plugins to extend the system.

No comments:

Post a Comment