CI vs CD and Pipeline Building Blocks

πŸ“‹ Table of Contents β–Ύ
  1. Core CI/CD Concepts and Stages
  2. Common Mistakes

To work effectively with CI/CD, QA engineers need to understand the difference between Continuous Integration and Continuous Delivery/Deployment, and how typical pipeline stages are structured. With this understanding, you can place the right tests in the right stages.

Core CI/CD Concepts and Stages

Continuous Integration focuses on integrating code frequently and running fast checks, while Continuous Delivery/Deployment is about automatically promoting builds through environments once they are proven safe. Pipelines are usually made of stages like build, unit tests, integration tests, UI tests and deploy.

# Simplified multi-stage pipeline
stages:
  - build
  - unit_tests
  - integration_tests
  - e2e_tests
  - deploy

build:
  stage: build
  script: ./scripts/build.sh

unit_tests:
  stage: unit_tests
  script: ./scripts/run-unit-tests.sh

integration_tests:
  stage: integration_tests
  script: ./scripts/run-api-tests.sh

e2e_tests:
  stage: e2e_tests
  script: ./scripts/run-ui-tests.sh
Note: CI answers the question β€œIs the change safe to merge?” while CD answers β€œIs the build safe to release and keep running?”
Tip: When reading a pipeline file, mark which stages are fast and which are slow; this helps you reason about where to put different categories of tests.
Warning: Mixing very slow UI tests into early, fast CI stages can frustrate developers and cause them to bypass the pipeline.

As a QA engineer, you help define which tests are part of the CI safety net and which belong in slower, deeper CD stages or nightly jobs.

Common Mistakes

Mistake 1 β€” Treating CI and CD as the same thing

This blurs responsibilities.

❌ Wrong: Using β€œCI/CD” as a single buzzword without understanding the differences.

βœ… Correct: Recognise that CI focuses on change-level checks and CD focuses on release and environment-level checks.

Mistake 2 β€” Ignoring pipeline stage boundaries

This hurts feedback loops.

❌ Wrong: Throwing every test into one giant stage.

βœ… Correct: Design stages so that fast, cheap tests run first and expensive tests run later.

🧠 Test Yourself

What is a good way to think about CI vs CD?