In software engineering, continuous integration (CI) is the practice of merging all developers’ working copies to a shared mainline several times a day.
Each check-in is then verified by an automated build, allowing teams to detect problems early.
By integrating regularly, we can detect errors quickly, and locate them more easily.
Several benefits we are chasing:
Integration bugs are detected early and are easy to track down due to small change sets. This saves us both time and money.
Avoids last-minute chaos at release dates, when everyone tries to check in their slightly incompatible versions.
When unit tests fail or a bug emerges, when we need to revert the codebase to a bug-free state without debugging, only a small number of changes are lost (because integration happens frequently).
Constant availability of a “current” build for testing, demo, or release purposes
Frequent code check-in pushes developers to create modular, less complex code