Wednesday, March 23, 2011

Implementing continuous integration process

Cruise Control - CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build technologies, and notifications schemes including email and instant messaging. A web interface provides details of the current and previous builds. And the standard CruiseControl distribution is augmented through a rich selection of 3rd Party Tools.

http://cruisecontrol.sourceforge.net/

Hudson -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

http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/hudsonADF/hudsonADF.html
http://hudson-ci.org/
http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson
http://wiki.hudson-ci.org/display/HUDSON/Installing+Hudson


Apache Continuum (Continuous Integration and Build Server) - Apache Continuum is an enterprise-ready continuous integration server with features such as automated builds, release management, role-based security, and integration with popular build tools and source control management systems. Whether you have a centralized build team or want to put control of releases in the hands of developers, Continuum can help you improve quality and maintain a consistent build environment.

http://continuum.apache.org/
http://continuum.apache.org/docs/1.3.7/installation/build-agent.html
http://vmbuild.apache.org/continuum/

Luntbuild -Luntbuild is a powerful build automation and management tool. Continuous Integration or nightly builds can be easily set using a clean web interface. Executed builds are well managed using functions such as search, categorization, promotion, patching, deletion, etc. It also acts as a central build artifacts repository and download area for your whole team.

http://luntbuild.javaforge.com/
http://luntbuild.javaforge.com/luntbuild-demo.html

Which one to go for? - Each of these tools have their own pron and cons. You can refer to below link to find a summary of each tool, which would help you to choose the one that suites your need -

http://www.javaworld.com/javaworld/jw-11-2006/jw-1101-ci.html?page=1



3 comments:

  1. cruise control is a good build/integration tool. I am using it for last 5 years in building our products.

    ReplyDelete
  2. Yup,Cruise control is good,But I think Hudson is better. The below link explains it in more detail -

    http://minddiary.com/2008/05/10/comparing-two-continous-build-tools-cruise-control-and-hudson/

    ReplyDelete
  3. Yup,Cruise control is good,but if you are using SVN or CVS then Hudson can be a better choice because of following reasons -
    1- In Hudson, we need not to write code to download source from repository before making build
    2- The Gui of Hudson is very nice & strong and most of the configuration can be done from there.
    3- It provides SCM polling option(just like cruise)which is not provided in Continuum and Luntbuild
    4-Support for inter project dependencies management

    On the area of improvement side I can see the following things -
    1-Hudson supports only SVN and CVS SCM tool currently
    2-It provide only email and rss notification

    ReplyDelete