CI/CD
Continuous Integration / Continuous Delivery
In short
CI/CD is a set of automated practices that build, test, and release code changes frequently, so software can be delivered to users quickly and safely.
What is CI/CD?
CI/CD combines two related practices. Continuous integration (CI) means developers merge their changes into a shared branch often, at least daily, and each change automatically triggers a build and a test run. Continuous delivery (CD) extends this so every change that passes the tests is automatically prepared for release and can be deployed at any time.
The work is done by a pipeline, a sequence of automated steps defined in a configuration file stored with the code. A typical pipeline installs dependencies, runs linters and tests, builds the application or a container image, and deploys it to a staging or production environment. Common tools include GitHub Actions, GitLab CI/CD, Jenkins, CircleCI, and Azure Pipelines.
Think of CI/CD as an assembly line with a quality check at every station: each small change is inspected automatically, and problems are caught minutes after they are introduced instead of weeks later. This makes releases routine and low-risk rather than rare, stressful events.
The CD part has two meanings that are often confused. In continuous delivery, a person still approves the final release to production, while in continuous deployment, every change that passes the pipeline goes live automatically with no manual step. Both depend on a reliable automated test suite.
At a glance
Key takeaways
- CI automatically builds and tests every change merged into the shared codebase.
- CD keeps the code always ready to release, or releases it automatically.
- Pipelines are defined in configuration files stored alongside the code.
- Continuous delivery has a manual approval step; continuous deployment does not.
- CI/CD is one of the core practices of DevOps.
Example
# .github/workflows/ci.yml: run the tests on every push and pull request
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 24
- run: npm ci
- run: npm testReaders ask
What is the difference between continuous delivery and continuous deployment?
With continuous delivery, every change is automatically tested and made ready for release, but a person decides when to deploy to production. With continuous deployment, every change that passes the pipeline is released to production automatically.
What is a CI/CD pipeline?
A CI/CD pipeline is the automated sequence of steps, such as build, test, and deploy, that runs each time the code changes. It is usually defined in a configuration file stored in the same repository as the code.
Is CI/CD the same as DevOps?
No. DevOps is a broader culture that unites development and operations, and CI/CD is one of its most important practices for automating how code is tested and released.
See also
- DevOpsDevOps & Cloud, p. 14DevOps is a set of practices and a culture that brings software development and IT operations together to deliver software faster and more reliably.
- GitVersion Control, p. 10Git is a free, open-source distributed version control system that tracks changes to files over time, so developers can collaborate and undo mistakes.
- Pull RequestVersion Control, p. 32A pull request is a proposal to merge changes from one branch into another, giving teammates a place to review, discuss, and test the code before it is merged.
- CommitVersion Control, p. 5A commit is a saved snapshot of a project's files in Git, recorded with a unique ID, an author, a timestamp, and a message describing what changed.
- DockerDevOps & Cloud, p. 17Docker is an open-source platform for packaging an application and everything it needs into a container that runs the same way on any machine.
- KubernetesDevOps & Cloud, p. 32Kubernetes is an open-source system that automates deploying, scaling, and managing containerized applications across a cluster of machines.
- GitHub ActionsDevOps & Cloud, p. 22GitHub Actions is GitHub's built-in automation platform: YAML workflows in a repo run tests, builds and deployments on events like a push or pull request.
- JenkinsDevOps & Cloud, p. 30Jenkins is an open-source automation server that builds, tests and deploys software through pipelines, and one of the oldest and most widely used CI/CD tools.
Sources
Spotted a mistake or something missing on this page?Suggest an edit