The Continuous Integration process is the basis of the Continuous Integration and Delivery (CI/CD) concepts.
The Continuous Integration process is based on a number of principles. In the following analogy, you’ll get to know three of them.
1. Use Version Control
In collaborative software development, various software engineers work on the same product at the same time. Version Control makes their contributions transparent and avoids clashes between them.
A Source Code Management system (SCM) helps you with this task:
- An SCM defines a common main line for a product’s source code that serves as a basis for all further development. Each change of the source code creates a new version of the main line.
- It manages the main line versions by adding a time-stamp, the responsible developer’s identity, and a commit message that briefly explains their content to them.
- An SCM allows you to track changes as well as to back up and restore single versions.
2. Build Each Change
In collaborative software development, the main line is the single source of truth and must therefore be protected by all means.
Only by building each change before merging it with the main line, you can find out whether a project is clean or broken from a build perspective. Thereby, you can detect and solve issues before they endanger the main line.
3. Commit Early and Often
In collaborative software development, various software engineers work on different versions of the main line at the same time. The longer they wait before integrating their changes back into it, the more the developer's local copy of the main line differ from the original. As a result, merging their changes becomes increasingly difficult and the risk of conflicting changes rises.
To avoid this issue, it’s important to commit early and oftenby integrating even smaller code changes back into the main line and beginning to do so at an early stage of the development process. This principle is key to the continuous integration concept.
You now have an understanding of three important principles that help you apply Continuous Integration and Delivery.