Technology

CI/CD Pipeline Diagram: Understanding the Complete Workflow

Learn how CI/CD pipelines work with clear diagrams and explanations. From code commit to production deployment, understand each stage of continuous integration and delivery.

JG
Jon Goodey
Founder & CEO
15 January 2026 9 min read

CI/CD pipelines are the backbone of modern software development, but understanding how they work can feel daunting. Visual representations help - seeing the flow from code to deployment makes the concept tangible.

This guide explains CI/CD pipeline architecture through diagrams and practical examples. Whether you’re implementing your first pipeline or optimising an existing one, understanding the complete workflow is essential.

What Is a CI/CD Pipeline?

A CI/CD pipeline is an automated sequence of steps that takes code from development to production. It handles building, testing, and deploying software automatically, reducing manual work and catching problems early.

The term combines two practices:

  • CI (Continuous Integration): Automatically building and testing code when developers make changes
  • CD (Continuous Delivery/Deployment): Automatically preparing or releasing code to production environments

Basic CI/CD Pipeline Diagram

The simplest CI/CD pipeline follows a linear flow:

┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────┐
│  Code   │───▶│  Build  │───▶│  Test   │───▶│ Release │───▶│ Deploy  │
│ Commit  │    │         │    │         │    │         │    │         │
└─────────┘    └─────────┘    └─────────┘    └─────────┘    └─────────┘

Each stage must pass before proceeding to the next. If any stage fails, the pipeline stops and alerts the team.

Stage Breakdown

1. Code Commit Developers push code changes to a version control repository (GitHub, GitLab, Bitbucket). This triggers the pipeline automatically.

2. Build The system compiles code, resolves dependencies, and creates deployable artifacts. For interpreted languages, this might package the application.

3. Test Automated tests verify the code works correctly. This includes unit tests, integration tests, and potentially end-to-end tests.

4. Release The tested code is packaged for deployment. This might involve creating Docker containers, generating installers, or preparing configuration.

5. Deploy The release is deployed to the target environment - staging, production, or both depending on configuration.

Complete CI/CD Pipeline Diagram

Real-world pipelines are more complex, with multiple testing stages and environments:

                                    ┌─────────────────────────────────────┐
                                    │         SOURCE CONTROL              │
                                    │  ┌──────────┐    ┌──────────┐       │
                                    │  │  main    │◀───│ feature  │       │
                                    │  │  branch  │    │ branch   │       │
                                    │  └────┬─────┘    └──────────┘       │
                                    └───────┼─────────────────────────────┘


┌───────────────────────────────────────────────────────────────────────────┐
│                        CONTINUOUS INTEGRATION                              │
│                                                                            │
│  ┌──────────────┐   ┌──────────────┐   ┌──────────────┐   ┌────────────┐  │
│  │    Build     │──▶│  Unit Tests  │──▶│ Integration  │──▶│   Static   │  │
│  │              │   │              │   │    Tests     │   │  Analysis  │  │
│  └──────────────┘   └──────────────┘   └──────────────┘   └─────┬──────┘  │
│                                                                  │         │
└──────────────────────────────────────────────────────────────────┼─────────┘


┌───────────────────────────────────────────────────────────────────────────┐
│                        CONTINUOUS DELIVERY                                 │
│                                                                            │
│  ┌──────────────┐   ┌──────────────┐   ┌──────────────┐                   │
│  │   Package    │──▶│   Deploy     │──▶│ Acceptance   │                   │
│  │  Artifact    │   │  to Staging  │   │   Tests      │                   │
│  └──────────────┘   └──────────────┘   └──────┬───────┘                   │
│                                               │                            │
└───────────────────────────────────────────────┼────────────────────────────┘

                            ┌───────────────────┴────────────────────┐
                            │                                        │
                            ▼                                        ▼
              ┌─────────────────────────┐            ┌──────────────────────┐
              │    Manual Approval      │            │  Automatic Deploy    │
              │    (Optional Gate)      │            │  (Full CD)           │
              └───────────┬─────────────┘            └───────────┬──────────┘
                          │                                      │
                          └──────────────┬───────────────────────┘


                          ┌──────────────────────────┐
                          │    PRODUCTION            │
                          │    DEPLOYMENT            │
                          └──────────────────────────┘

CI/CD Pipeline Stages Explained

Source Control Stage

Everything starts with version control. Modern CI/CD pipelines trigger automatically when code is pushed to specific branches.

Typical triggers:

  • Push to feature branch: Run CI tests only
  • Pull request to main: Run full CI plus staging deployment
  • Merge to main: Run complete pipeline including production

Branch strategies affect pipeline behaviour. A GitFlow approach has different triggers than trunk-based development.

Build Stage

The build stage transforms source code into runnable artifacts.

Tasks include:

  • Compiling source code
  • Resolving and downloading dependencies
  • Generating production-optimised bundles
  • Creating container images

Build artifacts are versioned and stored for use in later stages. This ensures the exact same code runs through testing and into production.

Testing Stages

Multiple testing stages catch different types of problems:

Unit Tests

  • Test individual functions and methods
  • Run quickly (seconds to minutes)
  • Catch logic errors early
  • High coverage expected (70-90%+)

Integration Tests

  • Test how components work together
  • Verify database connections, API calls
  • Slower than unit tests
  • Focus on boundaries between systems

End-to-End Tests

  • Test complete user journeys
  • Simulate real user behaviour
  • Slowest but most realistic
  • Used selectively for critical paths

Static Analysis

  • Scans code without running it
  • Catches security vulnerabilities
  • Enforces coding standards
  • Identifies complexity and maintainability issues

Staging Deployment

Before production, code deploys to a staging environment that mirrors production as closely as possible.

Staging purposes:

  • Final integration testing
  • Performance testing
  • User acceptance testing (UAT)
  • Stakeholder review

Environment parity is crucial. Differences between staging and production cause surprises during release.

Approval Gates

Some pipelines include manual approval steps before production deployment.

When manual gates make sense:

  • Regulated industries requiring sign-off
  • High-risk deployments
  • Coordinated releases across systems
  • Business timing requirements

Continuous deployment removes these gates - code that passes all automated tests deploys automatically.

Production Deployment

The final stage releases code to production.

Deployment strategies:

  • Rolling deployment: Gradually replaces old instances with new
  • Blue-green: Switches traffic between identical environments
  • Canary: Routes small percentage of traffic to new version first
  • Feature flags: Deploys code but enables features selectively

Monitoring and Feedback

Though not always shown in diagrams, monitoring completes the loop:

Production ───▶ Monitoring ───▶ Alerts ───▶ Team ───▶ Fixes ───▶ Code Commit
     │                                                              │
     └──────────────────────────────────────────────────────────────┘

Observability ensures problems are detected and fed back into development.

CI/CD Pipeline for Different Scenarios

Web Application Pipeline

┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐
│   Commit   │─▶│   Build    │─▶│   Test     │─▶│   Stage    │─▶│  Produce   │
│            │  │  Frontend  │  │  + Lint    │  │  Preview   │  │  Deploy    │
│            │  │  Backend   │  │            │  │  Deploy    │  │            │
└────────────┘  └────────────┘  └────────────┘  └────────────┘  └────────────┘

Web applications often include:

  • Separate frontend and backend builds
  • Lighthouse performance checks
  • Preview deployments for pull requests
  • CDN cache invalidation

Mobile App Pipeline

┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐
│   Commit   │─▶│   Build    │─▶│   Test     │─▶│   Submit   │─▶│   Beta     │
│            │  │  iOS +     │  │  + Device  │  │  to Store  │  │  Release   │
│            │  │  Android   │  │  Testing   │  │  Review    │  │            │
└────────────┘  └────────────┘  └────────────┘  └────────────┘  └────────────┘

Mobile pipelines add:

  • Platform-specific builds
  • Device farm testing
  • App store submission automation
  • Beta distribution (TestFlight, Firebase)

Infrastructure Pipeline

┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌────────────┐
│   Commit   │─▶│  Validate  │─▶│   Plan     │─▶│  Approve   │─▶│   Apply    │
│  Terraform │  │  Syntax    │  │  Changes   │  │  (Manual)  │  │  Changes   │
└────────────┘  └────────────┘  └────────────┘  └────────────┘  └────────────┘

Infrastructure as Code pipelines:

  • Validate configuration syntax
  • Show planned changes before applying
  • Often require manual approval
  • Include compliance checks

Common CI/CD Tools

Different tools handle different pipeline components:

Source Control and CI/CD Platforms

ToolStrengths
GitHub ActionsTight GitHub integration, marketplace of actions
GitLab CI/CDAll-in-one platform, good for self-hosting
JenkinsHighly customisable, large plugin ecosystem
CircleCIFast builds, good caching
Azure DevOpsMicrosoft ecosystem integration

Build and Package

ToolUse Case
DockerContainerising applications
npm/yarnJavaScript package management
Maven/GradleJava builds
webpack/ViteFrontend bundling

Testing

ToolType
JestJavaScript unit testing
CypressEnd-to-end testing
SeleniumBrowser automation
SonarQubeStatic analysis

Deployment

ToolApproach
KubernetesContainer orchestration
TerraformInfrastructure provisioning
AnsibleConfiguration management
ArgoCDGitOps deployment

Building Your First CI/CD Pipeline

Step 1: Start Simple

Begin with a minimal pipeline:

# Example GitHub Actions workflow
name: CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run tests
        run: npm test

This runs tests on every push. Nothing fancy, but it’s a foundation.

Step 2: Add Build Stage

jobs:
  build:
    steps:
      - uses: actions/checkout@v4
      - name: Install dependencies
        run: npm ci
      - name: Build
        run: npm run build
      - name: Test
        run: npm test

Step 3: Add Deployment

jobs:
  deploy:
    needs: build
    if: github.ref == 'refs/heads/main'
    steps:
      - name: Deploy to production
        run: # deployment commands

Step 4: Iterate and Improve

Add stages as needs emerge:

  • More test types
  • Security scanning
  • Performance testing
  • Multiple environments

CI/CD Pipeline Best Practices

Keep Pipelines Fast

Slow pipelines discourage frequent commits. Aim for:

  • Under 10 minutes for core CI
  • Parallel test execution
  • Effective caching
  • Only necessary tests per change

Fail Fast

Order stages so common failures occur early:

Quick checks (lint, syntax) ──▶ Unit tests ──▶ Integration tests ──▶ Deploy
      (seconds)                   (minutes)        (minutes)         (minutes)

Don’t wait 20 minutes for integration tests when a linting error would fail anyway.

Make Failures Visible

When pipelines fail, teams must know immediately:

  • Dashboard visibility
  • Slack/Teams notifications
  • Email alerts
  • Block merging until fixed

Version Everything

Pipeline definitions belong in version control alongside code:

  • Infrastructure as Code
  • Pipeline configurations
  • Environment variables (except secrets)
  • Documentation

Test the Pipeline Itself

Pipelines are code too. When changing pipeline configuration:

  • Test in feature branches first
  • Review pipeline changes carefully
  • Rollback quickly if problems emerge

Frequently Asked Questions

What’s the difference between CI and CD?

CI (Continuous Integration) focuses on automatically building and testing code when changes are made. CD (Continuous Delivery/Deployment) focuses on automatically releasing tested code to staging or production. CI ensures code is always in a working state; CD ensures working code reaches users quickly.

How long should a CI/CD pipeline take?

Core CI should complete within 10 minutes. Developers waiting longer lose momentum and batch changes, reducing the value of continuous integration. Full pipelines including staging deployment might take 15-30 minutes.

Do I need CI/CD for small projects?

Yes, though simpler implementations. Even solo projects benefit from automated testing and deployment. A basic pipeline prevents “it works on my machine” problems and catches mistakes before they reach users.

What triggers a CI/CD pipeline?

Typically code commits or pull requests to specified branches. Pipelines can also trigger on schedules (nightly builds), manually (release pipelines), or from external events (dependency updates).

How do I handle secrets in CI/CD?

Never store secrets in pipeline code or version control. Use your platform’s secret management: GitHub Secrets, GitLab CI/CD Variables, Jenkins Credentials, or external vaults like HashiCorp Vault or AWS Secrets Manager.

Taking Your Pipeline Further

CI/CD pipelines evolve with your project. Start simple, add complexity as needed, and continuously improve based on real problems you encounter.

The goal isn’t a perfect pipeline - it’s enabling your team to deliver quality software reliably and quickly. Every automation that catches a bug before production or saves a manual deployment step compounds over time.

For broader DevOps context, read our Complete Guide to DevOps Practices. To understand distributed systems underlying modern deployments, see What Is a Distributed System.


About Indexify: We provide data-driven marketing intelligence for UK businesses. No fluff, no vanity metrics - just growth.

JG

Jon Goodey

Founder & CEO

Jon is the founder of Indexify, helping UK businesses leverage AI and data-driven strategies for marketing success. With expertise in SEO, digital PR, and AI automation, he's passionate about sharing insights that drive real results.

Related Resources

Continue Reading

Our Services

Ready to Put These Insights Into Action?

Explore our services or get in touch to discuss your marketing goals.