Friday, December 28, 2007

Continous Integration With CruiseControl

Continuous integration is a hot topic in the software development world. Although often linked with Agile processes, such as eXtreme programming, the concept and practices are nothing new -- just a variation on well-known software development best practices. It includes a cycle of checking out the latest code from repository, build , deployment and testing.

CruiseControl is a framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds.

It has provisions for
Checking out for modifications in the code Repository (SVN or CVS)

Interval based bulding( Eg : per hour basis or day basis in a week )

Conditional building based on modifications in Repoistory

The home grown build and deployment tools(processes) can be called from it which gets executed

Corresponding unit test cases & covearge frameworks can be executed .

Results can be intimated through messenger or emails.

JMX controls are provided which help in controling the entire process through the Webpage.

Dashboard is provided which gives detailed information about builds success, failure details , point of failure, time taken , latest modifications in repository from last successful build, unit test results , coding standars followed etc.

Although the process for Building and Deployment of the product depends on the individual , Cruisecontrol helps to integrate all these under one platform .

The product is available under the free licence and can be dowloaded from the following URL

It has Plugins for several of the following Additonal Frameworks.When Pluggins are not provided the results can be displayed from a link provided in the CI home page.(As Jettty WebServer is emmbedded woth cuisecontrol )

PMD : - (Coding Standard Framework)

Emma: -( Java Unit Test Coverage FrameWork)

Clover : -(Alternative to PMD)

Junit : - (Java Unit Testing Framework)

Utplsql : (PlSql Unit Testing Framework)

Jutex : - (PlSql Unit Test Coverage Framework)

Code Collaborator : (Code Review Tool)

Free Domain Names @!