Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Continuous integration (CI) is a team practice of frequently merging changes into a shared codebase and automatically building and checking each integration. In this context, a build is more than compiling code: it commonly includes tests and may produce an artifact, such as compiled software, a container image or a deployment package.

What continuous integration means

CI combines two things: developers integrate their work into a shared codebase frequently, and an automated process verifies each integration. Martin Fowler’s 2024 definition describes team members merging their changes at least daily. The exact cadence and pipeline are team choices, but merely having a server that compiles code is not the whole practice.

The shared codebase is important because integration means bringing changes together with the rest of the team’s work. Frequent integration and automated feedback are intended to help teams spot problems closer to the change that introduced them, when there is less code to investigate. They do not guarantee that every defect will be caught or that every team will see a particular improvement.

What happens in a CI build

A CI build is an automated run that checks a particular change or integration. Microsoft describes a build as compiling source code, running tests and producing artifacts for deployment. A project’s pipeline can include additional validation, so “build passed” means the configured checks passed—not necessarily that every possible quality or security concern has been ruled out.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. A change is submitted. A developer commits to source control or proposes changes in a pull request.
  2. A trigger starts the pipeline. It may run on a push, a pull request, a schedule or another configured event. GitHub Actions supports event, schedule and external-event triggers; Azure Pipelines documents push and schedule triggers.
  3. The pipeline checks out and validates the code. It runs configured steps, which may include compilation, tests, code analysis, security or compliance scans, and functional or acceptance tests.
  4. Results are reported. The outcome is made available to developers, often in the pull request or another reporting location, so they can investigate failures.
  5. An artifact may be produced. If configured, a successful run can create an output such as compiled code, a container image or a deployment package for later delivery stages.

Not every CI pipeline uses the same triggers, checks, execution machines, feedback location or artifact rules. Those details depend on the team’s tools and configuration.

CI is a practice, not just a pipeline

A pipeline automates verification, but CI also depends on how a team integrates its work. A team that routinely merges changes into a shared mainline and verifies them is practicing CI. A team that only runs builds on isolated feature branches may be checking code, but Fowler distinguishes that from CI centered on frequent integration to the mainline.

Branch and pull-request checks can still be useful: they provide feedback before a proposed change is merged. They complement integration; by themselves, branch builds do not establish that the team is integrating changes frequently into its shared codebase.

How CI differs from continuous delivery and deployment

These terms describe related but distinct parts of the software delivery process. Usage varies among teams, so it helps to define what each term means in a particular project.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Continuous integration: frequently integrate changes into the shared codebase and automatically verify them.
  • Continuous delivery: keep the product in a state where it can be released when desired. A successful CI run may feed into the later work that makes a release ready.
  • Continuous deployment: automatically release a change after it passes the deployment pipeline’s checks.

Passing CI checks does not, on its own, mean that a change has been released. Delivery and deployment involve later stages and decisions.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What to look for when comparing CI setups

When evaluating or describing a CI implementation, these details show what it actually does:

  • Triggers: whether it runs for pushes, pull requests, scheduled jobs or other events.
  • Validation: which builds, tests, analyses or scans are included.
  • Execution environment: whether jobs use hosted or self-hosted machines, also called agents in Azure Pipelines.
  • Feedback: where developers see results and how failures are surfaced.
  • Artifacts: whether a successful run produces outputs for later stages, and what those outputs are.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.