CI/CD Mastery Path¶
Most CI/CD problems are not exotic. A pipeline that is green because the tests ran in the wrong order. A cache that makes builds fast and wrong. A matrix of 108 jobs that nobody counted. A rename migration that breaks the old version during the deploy. A canary that cannot see a 20% regression. A ${{ github.event.pull_request.title }} pasted into a shell script. None of these are bugs in the tools. They follow from how pipelines actually work, and this course shows each one, with an experiment or a test wherever it could be run.
It assumes you can use Git and a terminal and write small programs. It doesn't assume any CI/CD experience.
Level 1 is the foundation: what CI and CD are, pipeline anatomy, GitHub Actions and Jenkins essentials, testing gates, reproducible builds and caching, artifacts and versioning, secrets, branching and pull-request checks, ending with a local CI runner you can run. Level 2 goes deeper: matrices and parallelism, cache design, reusable pipelines, containers in CI, flaky tests, quality gates, environments and approvals, runners, monorepos and a workflow linter. Level 3 is delivery: deployment strategies, feature flags, database migrations, rollbacks, infrastructure pipelines, GitOps, releases, supply-chain security and DORA metrics, ending with a canary simulator. Level 4 is scale: threat-modelling pipelines, speed and cost, Jenkins and Actions fleets, audit, testing pipelines, incidents, migration, golden paths and a capstone.
Every lesson has a How It Actually Works section: why two identical tarballs have different hashes, why a skipped required check blocks a merge, why 100% coverage can catch nothing, why a pool that is 90% busy makes jobs wait minutes, and why deleting a leaked secret from Git does not un-leak it.
Read this first: what was actually run
This course was written on a Mac with no GitHub Actions account, Jenkins server, Kubernetes cluster or cloud account, so no pipeline here was run on GitHub Actions or Jenkins, and no output is presented as coming from them. What I did instead, and what each lesson labels:
- Run locally: a 150-line CI runner (
minici) that exhibits job ordering, matrices, caches, artifacts and failure propagation; measured experiments withgit,tar,pytestandcoverage; real SQLite schema-migration experiments; real sockets on loopback; checksum tamper tests; and simulations (flaky-test arithmetic, canary statistics, runner-queue waits) with the model stated and checked against theory where a formula exists. - Tested Python tools with pytest suites, 173 tests in all: a Jenkinsfile linter, a secret scanner, a workflow linter, a path-filter mapper, a wait-for-port helper, a canary simulator, a feature-flag evaluator, a GitOps reconciler, an infrastructure plan guard (on hand-written fixtures), a version-bump tool, a DORA calculator, a pipeline performance model, a queue simulator, an audit-log chain, a workflow converter, a golden-path generator and a release-readiness check.
- Described, not run: GitHub Actions and Jenkins behaviour, environments and approvals, platform caches and limits, Terraform, Argo CD, signing and provenance tools. These come from docs.github.com, jenkins.io and general knowledge as read in October 2026, are marked "not run", and change over time: check current documentation.
Where an experiment gave a result that surprised me (a rollback test I predicted wrongly, a SQLite error when dropping a column, a python3 that was not the interpreter I expected, a tarball whose hash differed because of the gzip header), the lesson says so rather than inventing a clean story.
How the program is organized¶
| Level | Focus | Modules | What you can do after |
|---|---|---|---|
| 1 · CI/CD Foundations | CI/CD concepts, pipeline anatomy, Actions and Jenkins, testing gates, caching, artifacts, secrets, PR checks | 10 | Build and reason about a working pipeline end to end |
| 2 · Pipelines in Depth | Matrices, cache keys, reuse, containers, flaky tests, gates, environments, runners, monorepos | 10 | Make pipelines fast, trustworthy and maintainable |
| 3 · Delivery & Release Engineering | Deployment strategies, flags, migrations, rollbacks, IaC, GitOps, releases, supply chain, DORA | 10 | Ship changes safely and undo them when needed |
| 4 · Pipelines at Scale | Threat model, speed and cost, Jenkins and Actions at scale, audit, testing pipelines, incidents, migration, golden paths | 10 | Run delivery as a platform for many teams |
Each level has 9 teaching modules plus a hands-on project (module 10), for 40 lessons total.
How to use this site¶
- Get a repository to practise on: a GitHub account with a scratch repository, or a local Jenkins in a container. Never experiment on a pipeline that deploys to something you care about.
- Read the "what was run" note at the top of each lesson: it tells you whether an output was observed, modelled, or described from documentation.
- Run the local tools in the
src/folder of the course repository:python3 -m pytest -q srcruns all 173 tests;minici.pyruns a pipeline on your machine. - Do the exercises, especially "predict, then run".
- Do the projects: each combines its level into a tested tool.
More from the Mastery Path series¶
Free, structured, module-wise training across 97 other languages, platforms and disciplines — expand a category to browse: