Continuous Integration is a software development practice where members of a team integrate their work frequently. Usually each person in the team integrates at least daily – leading to multiple integration per day. Each integration is verified by an automated build deploy and test to detect integration errors as quickly as possible.
At a regular intervals (ideally at every code commit), the CI system is:
Continuous Integration workflow
There are several tools for CI and the most popular in the industry are Jenkins, Travis CI, GitLab etc .
Jenkins is a highly configurable system. Plugins provide flexibility to the tool. It is Free and released under the MIT License.
Integration with many different Version Control Systems Push to various artifact repositories Deployments to various test environments , staging environments or production Run and Generate Test reports, static analysis , code coverage etc. Notify stakeholders of build status etc.
CI is a necessity on complex projects due to the benefits it provides regarding early detection of problems. A good continuous build system should be flexible enough to fit into development environments and provide all the features a team expects from such a system.