continuous integration

/kənˈtɪn.ju.əs ˌɪn.tɪˈɡreɪ.ʃən/noun

Continuous integration is a practice in which developers regularly merge small code changes and check them automatically, making integration problems visible early.

With continuous integration, the team immediately sees when a new change causes an existing test to fail.

Continuous integration, often abbreviated to CI, is a software development practice. Developers regularly merge changes into a shared Glossary · In briefcodebaseA codebase is the collection of source code used to build and maintain a software product or component.Read more. An automated process checks every change. The team does not have to wait until the end of a project to discover that its parts do not work together.

How does continuous integration work?

A developer records a small change in a Glossary · In briefcommitA commit is a recorded version of files in a version control system. Each commit marks a point in a project's development history.Read more and sends it to the shared repository. This usually starts a CI pipeline. The pipeline builds the software and runs checks such as code quality analysis, Glossary · In briefunit testA unit test is an automated test of a small, defined software component, usually isolated from external systems.Read more and Glossary · In briefintegration testAn integration test checks whether several parts of a software system work together correctly, focusing on their communication and the data they exchange.Read more.

If a check fails, the team receives feedback and can investigate. Small, frequent changes usually make it easier to identify which change caused a problem. The pipeline does not prove the software is error-free: its value depends on the checks selected and the quality of the tests.

Where does CI stop?

Continuous integration focuses on merging and checking code. With Glossary · In briefcontinuous deliveryContinuous delivery is a practice in which each successful software change is automatically built, tested and prepared so the team can deploy it to production at any time.Read more, a successful change is also automatically prepared for a possible Glossary · In briefreleaseA release is an identifiable software version prepared to be made available to users. It brings together one or more checked changes.Read more. Glossary · In briefcontinuous deploymentContinuous deployment is a practice in which every software change that passes all automated checks goes to production without a manual approval step.Read more goes further and automatically sends every change that passes all checks to production.

A team can use continuous integration without deploying automatically. A manual check, acceptance test or approval may still follow the CI pipeline before the team releases a version.