Pipelines as Code & Quality Gates
A track of P36 · CI/CD & Delivery.
CI as an enforced gate: author a real GitHub Actions workflow and run it through a CI simulator - a job's needs are its gate, a failed gate skips downstream, fail-fast cancels the rest - then fan out with a matrix and promote only a green build.
Packaging tells you what ships; a pipeline decides whether it ships. This track is CI as a quality gate — declared as code in the repo, run on every push, and enforced on the merge — built by driving a real GitHub Actions workflow through an in-process CI simulator rather than trusting a black-box runner.
You start by authoring a real Actions YAML for a gate chain (lint, test, build,
deploy) and running it through the simulator: a job's needs are its gate, a failed
gate skips everything downstream, and fail-fast cancels the rest — the run
report is what you assert on. Then you fan the pipeline out: a matrix expands
one job into one per version × OS, caching on the lockfile hash skips redundant
installs, and promotion ships only a green build from the protected branch. The
through-line is that CI is a gate, not a script: a red pipeline blocks the merge,
and this repo's own make quality job is the worked example.