GitHub Actions CI from First Principles
Make every pull request prove install/lint/typecheck/test/build.
What you must be able to do
Objectives
Understand the idea before syntax
Package, verify, release, deploy, smoke-test, and roll back TaskFlow with explicit evidence at every stage.
Establish a healthy baseline
- 01
Open a scratch file or the relevant TaskFlow package.
- 02
Run the existing project/tests once so you know the baseline is healthy.
- 03
State what evidence will prove success before changing code.
Small change, immediate evidence
- 01
Write the goal in observable terms before coding: by the end of this lesson you should be able to demonstrate “GitHub Actions CI from First Principles” in a running TaskFlow-oriented example.
- 02
Read the example once without running it. Predict the exact output, state change, request, or compiler behavior and write that prediction down.
- 03
Type the example yourself rather than pasting it. Run the narrowest command that exercises only this concept, then compare observed evidence with your prediction.
- 04
Change one assumption at a time. Keep the change small enough that you can explain why the result changed.
- 05
Perform the intentional failure lab: Remove frozen-lockfile, modify package.json without committing the lockfile, and explain why CI becomes less deterministic.
- 06
Read the resulting compiler error, stack trace, HTTP response, browser evidence, database state, or CI log from the first line that is actually relevant to your code.
- 07
Repair only the root cause. Re-run the same verification so you can prove the repair changed the observed evidence.
- 08
Close the reference and rebuild the important part from memory. If you cannot explain why each boundary exists, revisit the smallest missing concept rather than memorizing the final code.
name: CI
on: [pull_request]
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: corepack enable
- run: pnpm install --frozen-lockfile
- run: pnpm lint
- run: pnpm typecheck
- run: pnpm test
- run: pnpm buildA failing quality gate blocks a trustworthy merge when branch protection requires CI.
Remove frozen-lockfile, modify package.json without committing the lockfile, and explain why CI becomes less deterministic.
Do not fix it immediately. Capture the compiler error, request/response, stack trace, database state, browser output, or CI log first. Debugging skill grows from comparing evidence with a prior prediction.
Investigation checklist
- What did you predict?
- What actually happened?
- At what boundary do those first differ?
- What is the smallest piece of evidence that proves the failure lives there?
- Can you fix the cause without changing unrelated layers?
- Can you add a regression test or repeatable verification?
Now work without the transcript
Apply GitHub Actions CI from First Principles to one new TaskFlow requirement. Do not reopen the example until you have a failing attempt, an explanation of the failure, and a specific question you cannot answer.
Continue only when these are true
Mastery evidence
Record this deep-dive lesson
Mark complete only after the transfer challenge and exit ticket.