🚀

Key Stages in Modern CI/CD Pipeline

Jun 4, 2025

Designing a Modern CI/CD Pipeline

This lecture covers the principles and steps involved in designing a modern CI/CD (Continuous Integration/Continuous Delivery) pipeline, applicable to various industries and applications.

Overview

  • Importance of a modern CI/CD pipeline for software and DevOps engineers.
  • Applicability across industries and application types.

Source Stage

  • Objective: Retrieve code from a repository (e.g., GitHub, Bitbucket).
  • Branch Protection:
    • Implement PR (Pull Request) reviews to protect the main branch.
    • Prevent direct code pushes to the main branch.
  • Linting:
    • Use linters to check for syntax errors.
    • Implement GitHub actions to enforce linting checks.
    • PR cannot be merged if linting fails.
  • Pre-commit Hook:
    • Run linting checks locally before code is committed.

Build Stage

  • Objective: Compile code and build container images, prepare artifacts for testing and release.
  • Container Images:
    • Preference for building Docker images first, then compiling code within them.
  • Unit Tests:
    • Ensure basic functionality checks are in place.
  • Code Coverage:
    • Check for 80-90% code coverage.
    • Fail the pipeline if coverage is below the threshold.

Test Stage

  • Objective: Conduct heavy testing, particularly integration tests.
  • Integration Tests:
    • Test application functionality (e.g., user actions in a social media app).
    • Manage dependencies and environment setups using Docker Compose or Kubernetes.

Release Stage

  • Objective: Release the application for use across various environments.
  • Image Registry:
    • Ship images to a registry (e.g., ECR).
    • Deploy images to QA, staging, and production environments.

Conclusion

  • This pipeline represents Continuous Integration and Continuous Delivery.
  • Upcoming focus on Continuous Deployment and GitOps, integrating CI/CD with deployment pipelines.
  • Future discussions on developer code pushes to automatic production deployment.

This lecture covered the foundational stages of designing a CI/CD pipeline with a focus on source control, building, testing, and releasing. Stay tuned for the next session on continuous deployment.