CI/CD (continuous integration and delivery)
Also called continuous integration, continuous delivery, continuous deployment.
An automated pipeline that builds and tests every code change (CI) and then releases it to users in a repeatable way (CD).
Last updated
What it is.
Continuous integration means every change is merged often and checked automatically: build, tests, linting, security scans. Continuous delivery means a passing change is always ready to release with one action. Continuous deployment goes one step further and releases every passing change automatically.
The pipeline is the same every time, so releases stop depending on one person's laptop or memory.
Why it matters
Small, frequent, tested releases break less than big, rare ones, and are easier to fix when they do. CI/CD is what makes that safe. It also gives buyers evidence: every release has a record of what was tested and who approved it.
In a product build
We set up CI/CD in the first week of a project, with preview environments for each change, tests that run in minutes and production releases that need an approval where the client's controls ask for it. Infrastructure changes go through the same pipeline via infrastructure as code.
Common mistakes.
- 01
Slow pipelines, so people batch changes and skip the point of it.
- 02
Flaky tests that get ignored, until a real failure gets ignored too.
- 03
Secrets pasted into pipeline logs or config files.
Work it out with a tool.
Related terms.
- Infrastructure as code (IaC)Defining servers, networks, databases and other cloud resources in code files that are versioned and applied automatically, instead of setting them up by hand.
- Blue-green deploymentA release method that runs two identical production environments and switches all traffic from the old one to the new one in one step.
- Canary releaseA release method that sends a small share of users to a new version first, watches for problems, and widens the rollout step by step.
- Feature flagA switch in the code that turns a feature on or off for chosen users at runtime, without deploying new code.
- Container (software)A package that holds an application and everything it needs to run, isolated from other software on the same machine.
Guides and pages
Browse the full glossary or read answers to common questions.