Saturday, 9 May 2015

Continuous Integration (CI)

What is Continuous Integration (CI)?
During early period of software development, most of the software projects faced the issue at the time of integration of the components with each other. When multiple people work on the same project, issues do occur during integration. It is risky, costly and time consuming to fix such issues.
To tackle above problem, Continuous integration emerged.
In continuous integration, all developers commit their code to the baseline (trunk or master) repository everyday and build servers then compile and build the code after every commit immediately. Thus, if there is any issue during integration, stakeholders are notified instantly about the failure of the build.

Best practices for the implementation of CI.
Below is the list of best practices that should be adopted for CI

  1. Central or distributed source code repository (like SVN or GIT HUB) should be maintained.
  2. All developers must check out the latest code from baseline repository everyday.
  3. Changes in the local machine code must be first tested and then committed into baseline.
  4. Each commit operation into the baseline must start build process using build servers. Build servers may use tools like maven, ant, make, gradle, nant etc.
  5. If there is a failure in the build process, all stakeholders must be notified by an email.
  6. Build servers must communicate with CI servers which will kick off the automated tests as soon as build is successful.
  7. If there are any failures in functional tests, all stakeholders must be notified by an email.
  8. If all tests pass, build must be deployed automatically using tools like Octopus Deploy

List of popular CI servers.

  1. Jenkins (Earlier Called as Hudson)
  2. Teamcity
  3. Bamboo
  4. CruiseControl
  5. Go
  6. Team Foundation Server

What do you think on this topic? Please express your opinion or ask any question through comment below. You can write to me at

Sponsored Links

Popular Posts



Google+ Followers

Google+ Badge