Continuous Integration (CI) in software development is a way to publish small changes to the code base quickly, in the context of tests and validation built-in. The keys are to classify the changes to be CI-compatible, that is, not overly complex, and small enough to be applied that they can be backed out easily. The tests and validation process is built in an automated way to gain a baseline of confidence that it will be applied without breaking the whole system.
Before CI, changes to the software were often made in large batches and often required a long validation process. It can be months before developers see their changes in production, receive feedback loops, and correct any bugs. In short, the CI process aims to shorten the process from idea to change.
The general workflow typically involves the following steps:
- The first engineer...