Skip to content
5 min read·Lesson 1 of 10

What Is CI/CD?

Define continuous integration, continuous delivery, and continuous deployment — and the value each one delivers.

"CI/CD" is shorthand for the automation that turns committed code into working software in production. It covers three related ideas — and they're often confused.

Continuous Integration (CI)

CI means every developer integrates their changes into the shared trunk frequently — at least daily — and an automated pipeline builds and tests every push.

Without CI, branches drift apart. Two engineers each refactor the same module on long-lived branches and merging becomes a multi-day puzzle. With CI, the integration happens many times a day, in tiny increments. Conflicts surface immediately while context is fresh.

What CI typically runs on every push:

  • Compile / build the code
  • Lint and format checks
  • Unit tests
  • Static analysis and security scans
  • Build artefacts (JARs, container images, npm packages)

If any step fails, the build is "broken" and stops the merge. Fixing the broken build is the team's top priority.

Continuous Delivery (CD)

Continuous Delivery extends CI: every build that passes is automatically packaged and deployable to production. The actual release is still a human decision (a button click, a tag, an approval).

Continuous Delivery means:

  • Every commit produces a release-quality artefact
  • Deployment to a staging environment is automatic
  • Deploying to production is one click — no manual config, no surprise scripts
  • Rollback is one click

This is where most regulated organisations land — auditors and change-management boards still want a human in the loop, but the loop takes seconds, not weeks.

Continuous Deployment

Continuous Deployment goes one step further: every passing build is released to production automatically, with no human gate.

It requires deep confidence in your tests, observability, and rollback automation. Companies like Etsy, Netflix, and Amazon ship hundreds of times a day this way. It's not appropriate for every domain — banks, medical devices, and avionics generally won't accept it — but where it works, it's the gold standard.

The Pipeline

A pipeline is the concrete chain of automated steps that implements CI/CD. A typical pipeline looks like:

push → checkout → build → unit tests → security scan → package
     → deploy to dev → integration tests
     → deploy to staging → smoke tests → human approval
     → deploy to prod → post-deploy checks

Each stage gates the next. A failure anywhere stops the pipeline and notifies the team.

Why CI/CD Matters

Without CI/CDWith CI/CD
Manual builds — "works on my machine"Builds run identically every time in a clean environment
Bug found weeks after introductionBug found in minutes
Release nights, war rooms, manual checklistsOne-click releases, any time of day
Rollback = restoring backups, panicRollback = redeploy previous artefact
Engineers spend hours on ops per releaseEngineers spend hours on features

The DORA research consistently shows: teams with mature CI/CD deploy more often, recover faster, and have lower change-failure rates than teams without.

Pipeline-as-Code

Modern CI/CD pipelines are defined as code, checked into the same repo as the application:

  • GitHub Actions — .github/workflows/*.yml
  • GitLab CI — .gitlab-ci.yml
  • CircleCI — .circleci/config.yml
  • Jenkins — Jenkinsfile
  • Azure Pipelines — azure-pipelines.yml

This means your pipeline is reviewable, versioned, and changes go through the same process as the code itself. No more "the magic build server that nobody can rebuild."

The Vocabulary

Workflow / pipelineThe whole automation, top-level
JobA unit of work that runs on a single runner
StepA single command or action inside a job
StageA logical grouping (build, test, deploy)
Runner / agentThe compute that executes jobs
ArtefactA built output (zip, image, package) saved between jobs
TriggerThe event that starts a pipeline (push, PR, schedule)
EnvironmentA target deploy location (dev, staging, prod)

What's Next

The next lesson breaks down each stage of a pipeline — what to put in build, what belongs in tests, where to put security scans, and where deploys happen. Then we get hands-on with GitHub Actions.

Key Takeaways

  • Continuous Integration merges and tests code changes frequently — usually on every push.
  • Continuous Delivery ensures every passing build is deployable; humans choose when to release.
  • Continuous Deployment releases every passing build automatically.
  • A pipeline is the automation that runs your build, test, and deploy steps in order.
  • CI/CD shortens feedback loops, reduces release risk, and frees engineers from manual ops.

Test your knowledge

Try exam-style practice questions to reinforce what you've learned.

Practice Questions →