This article only covers the comparison of some of the renowned tools used for Continuous Integration.

What Continuous Integration is

Continuous Integration (CI) implements a continuous processes of applying quality control; small pieces of effort, applied frequently. The purpose of Continuous Integration is to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development.

Continuous Integration

The practice of frequently integrating one's new or changed code with the existing code repository should occur frequently enough that no intervening window remains between commit and build, and such that no errors can arise without developers noticing them and correcting them immediately. The normal practice is to trigger these builds by every commit to a repository, rather than a periodically scheduled build. The practicalities of doing this in a multi-developer environment of rapid commits are such that it's usual to trigger a short time after each commit, then to start a build when either of the times expire, or after a rather longer interval since the last build.

It helps in running all unit and acceptance tests, publishes build results, notifies developers if a build breaks, labels successful builds in the source repository.

Some of the practices that should be followed sincerely once the project is in the Development phase are:

Some of the advantages:

There are many tools already present in the market for Continuous Integration, one can choose the tool according to the requirements, and here is the comparison for some of commonly used tools:

Comparison:

Name

Platform

License

Windows Builder

Java Builder

Source Code management System

Notification

IDE Integration

Cruise Control

Cross-Platform

Free

MSBuild, NAnt, Visual Studio

Phing, Apache Ant, Maven

AccuRev SCM, Alienbrain, BitKeeper, CVS, File system, FTP, Git, Mercurial, MKS Integrity, Perforce, Plastic SCM, PVCS, Rational ClearCase, Robocopy, Surround SCM, Sourceanywhere, SourceGear Vault, StarTeam, Subversion, Telelogic Synergy, Visual Source Safe, TFS

E-mail, CCTray, RSS

Eclipse

Hudson

Servlet Container

MIT

MSBuild, NAnt

Ant, Maven 2, Kundo

AccuRev SCM, Bazaar, BitKeeper, Clearcase, CMVC, CVS, Git, Mercurial, Perforce, PVCS, SourceSafe, StarTeam, Subversion, TFS

Android, E-mail, Google Calendar, IRC, XMPP, RSS, Twitter

Eclipse, IntelliJ IDEA, NetBeans

TeamCity

Windows, VSTM

Proprietary

MSBuild, NAnt, Visual Studio

Ant, Maven 2/3

Subversion, CVS, Git, Mercurial, AccuRev SCM, Clearcase, Perforce, SourceSafe, StarTeam, TFS, Vault

E-mail, XMPP, RSS, IDE, SysTray

Eclipse, Visual Studio, IntelliJ IDEA, RubyMine, PyCharm, PhpStorm, WebStorm

TFS

Servlet Container

Proprietary

MSBuild

Unknown

Team Foundation Server

E-Mail, SOAP

Visual Studio

PS: Hope you will see how to implement all of these in my next article.