Glossary term

Continuous Integration/Continuous Delivery or Deployment (CI/CD)

What is CI/CD?

CI/CD, or continuous integration/continuous delivery (or deployment), is a software development practice enabled by automation, accelerating release cycles through frequent, reliable updates.

CI/CD is an umbrella term covering several DevOps phases. CI (continuous integration) is the practice of integrating code changes into a shared repository several times a day.

CD can mean two different things: continuous delivery, which automates getting code ready for release, or continuous deployment, which automatically pushes final builds out to end users. Either way, CI/CD's frequent testing catches errors and defects early, making it a core part of every DevOps workflow.

What is continuous integration (CI)?

Continuous integration (CI) is an automated software development process that increases the speed of development while ensuring clean, quality code with every commit. CI requires developers to frequently check in or commit their code to a central shared repository, often many times a day.

CI is a DevOps best practice and a stage in the DevOps lifecycle, where automated verification catches problems early, before they snowball into bigger issues.

Practicing CI means integrating small, frequent changes rather than large, infrequent updates. Automating testing, merging, and check-ins means teams get cleaner code, faster validation, higher-quality releases, and a development pipeline that's easier to scale.

How does continuous integration work?

CI is a seamless process that begins in development and ends in testing. Every developer commits code in small increments to a shared repository, often called the mainline repository, so the whole team can work collaboratively and track changes. That repository lives in a version control system like Unity VCS, Perforce, or Git.

In practice, it works like this:

1. A developer checks code into the shared repository.

2. Every commit to the main branch (or a child branch) can trigger an automated build.

3. An automated build tool verifies the check-in or branch is error-free.

4. Once a build succeeds, an automated testing environment validates the release.

Since build and test cycles are fast, developers get feedback quickly enough to fix remaining errors right away, keeping the codebase healthy without slowing the team down.

In Unity specifically, Unity Build Automation runs these builds and tests automatically in the cloud, without you needing to maintain your own build servers or platform-specific infrastructure.

What are the rules and principles of CI?

  • Maintain one central code repository: Avoid storing code from different teams in separate repositories or systems.
  • Commit code to the mainline repository frequently: The longer code sits uncommitted, the more likely it is to conflict with the central repository.
  • Maintain separate build and test servers: Dedicated build machines speed up the process and avoid slowing down other developers.
  • Automate builds and tests: Every commit should be built and tested automatically, not manually.
  • Use production-like testing environments: Testing environments should simulate production to keep expectations consistent through deployment.
  • Give QA access to builds: Early access lets QA catch production-requirement failures before they require costly rework.

Continuous delivery and continuous deployment

What is continuous delivery?

Continuous delivery is the practice of automatically preparing every validated code change for release, without automatically releasing it.

How does continuous delivery work?

Once code passes CI, continuous delivery moves it into a staging environment, a production-like setting where automated unit, integration, and system tests run, and QA reviews the build. The goal is keeping the build in a permanently "release-ready" state.

What is continuous deployment?

Continuous deployment goes one step further than delivery, automatically releasing every validated change straight to production with no manual approval step.

How does continuous deployment work?

Every change that passes automated testing flows straight through the same pipeline into production, with no manual gate in between.

Two techniques make this safe rather than reckless: a dark release deploys new code to production without exposing it to any users yet, and a feature toggle (or feature flag) lets a team turn a specific feature on or off for chosen user segments, independent of the deployment itself. Together they let a team ship continuously while still controlling who actually sees a given feature and when.

Continuous delivery vs. continuous deployment

Both practices push validated code toward production as quickly and safely as possible. They differ in where the human decision sits:

What happens
Continuous delivery
Code auto-delivered to the repo, ready to release
Continuous deployment
Code auto-pushed all the way to production
Final step
Continuous delivery
A human decides when to release
Continuous deployment
Automated, no manual release step

How are CI/CD and DevOps related?

DevOps is a culture and process aimed at making software development more efficient, from planning through production. CI/CD is a phase within the DevOps lifecycle, mandating small, steady streams of code updates for continuous, iterative improvement.

A CI/CD pipeline is the specific set of tools and automation that make those regular, frequent releases possible. While CI/CD is central to a DevOps culture, DevOps encompasses much more, collaboration, team structure, observability, version control, and beyond.

The implementation of DevOps varies widely across organizations, but CI/CD is considered one of its core, foundational practices. Without it, most of DevOps' actual goals (fast, reliable, frequent releases) become very difficult to achieve.

What are the benefits of using CI/CD?

  • Rapid iteration: Automates the manual work of validating and deploying code changes, speeding up development.
  • Cleaner code: Frequent small check-ins substantially reduce the risk of build-breaking errors.
  • Faster bug fixes: Smaller, more frequent changesets make errors easier to identify and fix early.
  • Shorter feedback loops: A core DevOps principle, smaller iterative changes are easier to integrate, test, and deploy.
  • Better collaboration: Clear processes and timelines for commits and releases let teams move with more agility.

What are the challenges of using CI/CD?

  • Requires real testing maturity: Continuous deployment specifically depends on a mature, comprehensive automated test suite; without it, shipping straight to production becomes risky rather than safe.
  • Upfront tooling and setup cost: Building and maintaining a reliable pipeline takes real investment before the benefits show up.
  • Cultural adjustment: Teams used to infrequent, larger releases need to shift habits around commit frequency, code review speed, and ownership of what gets shipped.

Frequently asked questions (FAQ)

Is agile the same as CI/CD?

No, though they're related. Agile is a methodology for managing workflows, meeting cadences, and team organization. CI/CD is the automation that removes manual bottlenecks from releasing and improving software. Agile describes how a team works; CI/CD describes how code actually ships.

How often should you deploy to production with continuous deployment?

As frequently as your codebase supports, often multiple times a day, but the right cadence depends on factors like whether a fix is critical or minor, whether you're tracking regressions, whether QA and automated unit tests are in place, and how much code duplication exists.

Is continuous deployment worth it?

It depends on your business. It's highly valuable if you're prioritizing fast feedback loops and responsiveness to customers. It adds less value, and more cost, for a business without a large customer base to generate that feedback in the first place.

Related terms

DevOps

DevOps is a culture and set of practices that combines software development and IT operations to deliver better software faster.

Version Control

Version control, also known as source code management, uses tools to track changes or edits made to source code over time.