An introduction to continuous integration
Continuous Integration (CI) in software development is a way to publish small changes to the code base quickly, with built-in code tests and validation. The key is to classify the changes to be CI-compatible, that is, not overly complex, and small enough to be applied so that they can be backed out of easily. The tests and validation process are built in an automated way to gain a baseline of confidence that changes 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 (does that sound familiar?). It could be months before developers saw their changes in production, received feedback loops, and corrected 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 takes a current copy of the code base and works...