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.