CD pipeline skeleton

I’ve found that good continuous delivery pipelines tend to look like the following:

  1. Compile
  2. Run tests (unit, integration, checks, linters)
  3. Package (create release candidate, e.g., Docker image, executable, gem, …)
  4. Run smoke tests
  5. Deploy to staging (promote)
  6. Run end-to-end tests
  7. Deploy to production (promote)

Plenty of variation is possible. For example:

Note that in the list of stages above, the odd ones are building/deploying, while the even ones are testing. Move to the next step, verify that it worked, move to the next step, verify that it worked, … etc.

Note last edited December 2023.
Incoming links: Software development.