Thursday, May 23, 2013

Continuous Integration and Code Quality Tools - Part 1

There has been lot of hype around this topic in my company. This gave me a fairly good opportunity to meddle around and find some tools which helps maintain the quality of code and for Continuous Integration.

First of all, choosing tools for any purpose in any company does have their own needs and considerations. We had to look at tools which are basically opensource with good support from third party vendors. We looked through quite a number of CI tools which include Jenkins/Hudson and Apache Continuum. Jenkins was the chosen one after much discussions. The features which really kept it separate from the rest are its support to multiple build systems, wide range of plugins to communicate to variety of Code Quality tools, plugins for SVN, Sourcesafe and Rational Clearcase, multiple Notification mechanisms and most importantly plugin for Eclipse based platforms.

The Jenkins setup was relatively straight forward. All it needs is a web server (we stuck to JBoss as it was our infrastructure) where the Jenkins war file can be deployed. Creating jobs for a project, setting its dependencies, setting pre-build and post-build actions are very easy to create from the web UI. The Jenkins UI is pretty much self explanatory with its hints for each of the configs. We set our Jenkins up with mainly two different configurations. 
1. Ant build with access to Rational Clearcase
2. Maven 2 build with access to SVN.

Both these configurations have been working like a charm ever since we set them up.

We have also set up plugins to run JUnits, Findbugs, Corbetura and Checkstyle which are code quality tools. I will continue with them in the next part. 

No comments:

Post a Comment