CI/CD

/ˌsiːˈaɪ ˌsiːˈdiː/abbreviation

CI/CD is a way of working in which teams frequently merge software changes, check them automatically and use a defined sequence of steps to prepare or deploy them to production.

With CI/CD, every code change automatically runs through the tests before the team deploys a release.

CI/CD stands for Glossary · In briefcontinuous integrationContinuous integration is a practice in which developers regularly merge small code changes and check them automatically, making integration problems visible early.Read more⁠ and 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⁠ or 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⁠. It describes the practices and automation a team uses to regularly check and deliver small software changes. The details vary by project. Most teams use a pipeline: a defined sequence of steps triggered by a code change.

What happens in a CI/CD pipeline?

With continuous integration, developers frequently 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⁠. The pipeline builds the software and runs checks such as static 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 step fails, the team gets prompt feedback and can fix the problem before other changes build on it.

The pipeline can then create a package or Glossary · In briefcontainerA container is an isolated application process with the files and settings it needs. Containers on the same machine usually share the operating system kernel.Read more⁠ and deploy it to a test or acceptance environment. The same verified version can subsequently go to production. The required checks depend on the software and its risks. Alongside automated tests, a 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⁠ may require a Glossary · In briefcode reviewA code review is an assessment of a code change by another developer. They check its behaviour, readability, and maintainability, among other things, before the change is merged.Read more⁠, security check or manual approval.

Delivery and deployment are different

With continuous delivery, every successful change is ready for production, but a person can decide when to deploy it. With continuous deployment, a change goes to production automatically after passing all checks. The abbreviation CD can refer to either practice.

CI/CD makes releases repeatable and reveals errors sooner. It does not guarantee error-free software. The result still depends on the quality of the checks, the pipeline configuration and the agreements around deployment and Glossary · In briefrollbackA rollback reverses a change so software, configuration or data returns to an earlier state. Teams use it when a change causes errors or other unwanted effects.Read more⁠.