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.
At a high level, the value of CI is to:
- Reduce risks
By integrating many times a day, you can reduce risks on your project. Doing so facilitates the detection of defects, the measurement of software health, and a reduction of assumptions.
- Reduce repetitive manual processes
Reducing repetitive processes saves time, costs, and effort.
- The process runs the same way every time.
- An ordered process is followed. For example, you may run inspections (static analysis) before you run tests—in your build scripts.
- The processes will run every time a commit occurs in the version
- Generate deployable software at any time and at any place
CI can enable you to release deployable software at any point in time. From an outside perspective, this is the most obvious benefit of CI. With CI, you make small changes to the source code and integrate these changes with the rest of the code base on a regular basis. If there are any problems, the project members are informed and the fixes are applied to the software immediately.
- Enable better project visibility
CI has the following positive effects.
- Effective decisions: A CI system can provide just-in-time information on the recent build status and quality metrics.
- Noticing trends: Since integrations occur frequently with a CI system, the ability to notice trends in build success or failure, overall quality, and other pertinent project information becomes possible.
- Establish greater confidence in the software product from the
Overall, effective application of CI practices can provide greater confidence in producing a software product. With every build, your team
knows that tests are run against the software to verify behaviour, that
project coding and design standards are met, and that the result is a
functionally testable product.
 Continuous Integration by Martin Fowler
 Continuous Integration: Improving Software Quality and Reducing Risk by Paul Duvall, Steve Matyas and Andrew Glover