Continuous Integration (CI) is a workflow strategy that helps ensure that everyone’s changes will integrate with the current version of the project. This lets you catch bugs, reduce merge conflicts, and have confidence your software is working.
In most scenarios in conjunction with automated testing, we use a dedicated server (CI service). Whenever a developer adds new work to a branch, the server will automatically build and test the code to determine whether it works and can be integrated with the code on the main development branch.
For example. When a developer begins work on a new feature, he creates a new branch based on the branch containing the latest version of the code, commonly called the Master branch. As the developer is working on the new feature, his coworkers are continuously adding code to the Master branch.
The more this continues, the more his feature branch gets outdated. This increases the risk of build issues and regressions when merging the branch back to Master.
If the project was automatically built any time it changed, problems would be found sooner and less developer time would be wasted.
By integrating branches with Master more often, it is possible to maintain the health and stability of the project.
- Automate the build
- Make your build self-testing
- Automate deployment
- Reduce integration problems allowing you to deliver software more rapidly
- Say goodbye to long and tense integrations
- Committing code frequently
- Prevent integration problems