The words of Mr.Martin Fowler…
Continuous Integration(CI) is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. This article is a quick overview of Continuous Integration summarizing the technique and its current usage.
By Going through his this great article and example about CI will defenitly help you to get the clean idea about this.
Advantages of Continuous integration
- When unit tests fail, or a bug is discovered, developers might revert the codebase back to a bug-free state, without wasting time debugging.
- Integration problems are detected and fixed continuously – no last minute hiatus before release dates;
- Early warning of broken/incompatible code;
- Early warning of conflicting changes;
- Immediate unit testing of all changes;
- Constant availability of a “current” build for testing, demo, or release purposes;
- The immediate impact of checking in incomplete or broken code acts as an incentive to developers to learn to work more incrementally with shorter feedback cycles.
Continous Integration (CI) Servers
A server process or daemon which monitors the version control system for changes, then automatically runs the build process (e.g. a make script or Ant-style build script or Maven type) and then runs test scripts (e.g. JUnit or NUnit) can call as Contious Integration Server. In many cases the build script not only compiles binaries but also generates documentation, website pages, statistics and distribution media (such as Windows MSI files or RPM files).
- Continuum is the open source CI server from the house of Apache.
- Bamboo: The CI and Build server from Atlassian. (Commercial)
How to Choose a Continous Integration Server?