You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
CI/CD stands for Continuous Integration, Continuous Delivery, and Continuous Deployment. Together, these practices form the backbone of modern software development, enabling teams to deliver code changes frequently, reliably, and with minimal manual intervention.
Continuous Integration is the practice of merging code changes into a shared branch frequently — ideally several times per day — and running automated checks on every change.
Key principles:
Continuous Delivery extends CI by ensuring the software is always in a releasable state. Every change that passes automated testing can be deployed to production with a single manual approval.
Key principles:
Continuous Deployment goes one step further: every change that passes all automated stages is automatically deployed to production without human intervention.
Key principles:
| Aspect | Continuous Integration | Continuous Delivery | Continuous Deployment |
|---|---|---|---|
| Goal | Detect integration issues early | Keep software releasable | Deploy every passing change |
| Automation | Build + test | Build + test + staging | Build + test + staging + production |
| Human gate | Fix broken builds | Approve production release | None — fully automated |
| Risk level | Low | Medium | Higher (requires strong tests) |
| Adoption | Very common | Common | Less common |
Without CI/CD:
Developer writes code → waits days → manual testing → finds bugs → rework
With CI/CD:
Developer pushes code → automated build (minutes) → tests run → instant feedback
Small, frequent releases are far less risky than large, infrequent releases:
| Release Strategy | Batch Size | Risk per Release | Rollback Difficulty |
|---|---|---|---|
| Monthly release | Large | High | Very difficult |
| Weekly release | Medium | Medium | Moderate |
| CI/CD (daily+) | Small | Low | Easy |
A typical CI/CD pipeline consists of several stages:
┌──────────┐ ┌───────┐ ┌──────┐ ┌─────────┐ ┌────────────┐
│ Source │───▶│ Build │───▶│ Test │───▶│ Staging │───▶│ Production │
│ (commit) │ │ │ │ │ │ │ │ │
└──────────┘ └───────┘ └──────┘ └─────────┘ └────────────┘
| Stage | What Happens | Typical Tools |
|---|---|---|
| Source | Code is committed / PR is opened | Git, GitHub, GitLab |
| Build | Code is compiled, dependencies resolved, artefacts created | npm, Maven, Docker |
| Test | Unit tests, integration tests, linting, security scans | Jest, pytest, ESLint |
| Staging | Deploy to a pre-production environment for validation | Kubernetes, AWS, Terraform |
| Production | Deploy to live users | Kubernetes, Argo CD, Spinnaker |
A pipeline is the complete end-to-end workflow from code commit to production deployment. It defines the stages, jobs, and steps that every change must pass through.
Artefacts are the outputs of a build — compiled binaries, Docker images, bundled JavaScript files, or any deployable package.
Pipelines are triggered by events:
CI/CD pipelines typically deploy to multiple environments:
| Environment | Purpose |
|---|---|
| Development | Individual developer testing |
| CI | Automated build and test |
| Staging | Pre-production mirror |
| Production | Live users |
| Tool | Type | Best For |
|---|---|---|
| GitHub Actions | Cloud-hosted | GitHub-centric workflows |
| GitLab CI/CD | Cloud / self-hosted | All-in-one DevOps platform |
| Jenkins | Self-hosted | Maximum flexibility / legacy |
| CircleCI | Cloud-hosted | Speed and Docker workflows |
| Azure DevOps | Cloud / self-hosted | Microsoft ecosystem |
| AWS CodePipeline | Cloud-hosted | AWS-native deployments |
| Argo CD | Self-hosted | GitOps / Kubernetes |
Tip: You do not need to adopt Continuous Deployment immediately. Start with Continuous Integration, then progress to Continuous Delivery, and only move to Continuous Deployment when your test coverage and monitoring are mature.
CI/CD is the practice of automating the integration, testing, and deployment of software. Continuous Integration catches bugs early by running automated tests on every commit. Continuous Delivery ensures software is always releasable. Continuous Deployment takes this further by automatically deploying every passing change. Together, these practices reduce risk, accelerate delivery, and improve software quality. In the following lessons, we will explore each component of a CI/CD pipeline in detail.