Appearance
Workshop 3: CI/CD Pipeline Design & Configuration
Duration: 60 minutes You will leave with: a working .github/workflows/ci.yml with documented before/after timings.
📊 Slides: (link coming)
📓 Logbook: record today's results in your course logbook as we go.
What we do
The repo already ships with a deliberately slow GitHub Actions workflow at .github/workflows/ci.yml. A cold run is ~13 minutes, and almost all of it is one stage: the serial test:api suite, which makes real HTTP calls. We make it fast together, live, improving the file in place, one commit at a time. You follow along in your own fork. Today's steps get the pipeline to ~5–7 minutes; the big collapse (mocking the clients so test:api stops hitting the network) comes in Workshop 5.
- We push the repo to your fork and watch the baseline workflow run. We note the duration.
- We add dependency caching. Push. Measure the improvement.
- We move coverage out of the PR workflow into a nightly one.
- We parallelize Jest workers in
jest.config.js. - We split the test job into a matrix (api / web) running in parallel.
- (Optional, advanced) Shard the api test suite across multiple workers. This is optional polish; we cover it only if there's time.
In this workshop
starter/ci-broken.yml: minimal-baseline starter (only if you want to throw away.github/workflows/ci.ymland start over)
Keep your logbook
Record the duration numbers as we go in your course logbook: original local run, first CI run, cached CI run, parallel CI run. This is continuity, not an assignment: we reuse these numbers (and your .github/workflows/ci.yml) in Workshop 6, and everything in Workshop 8.