Writing1 min read

Engineering Notes

CI That Catches Regressions Early

A green merge still broke production on Tuesday.

A green merge still broke production on Tuesday

Type errors slipped through because the team ignored a flaky integration stage. The fix was small. The pipeline had trained us to skip red builds.


Several merges a week

We shipped several times a week. The pipeline ran everything in one long job.


Red builds got ignored

Slow feedback meant developers merged and hoped. The fastest useful signal was buried at minute twelve.


Fast check first

Put the fastest check first: lint and typecheck before integration.

Split stages by purpose. Treat flaky jobs as product bugs.


Minimal workflow

CI stages
GitHub Actions excerpt
jobs:
  fast-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run lint && npm run typecheck

CI should build trust

CI should build trust, not fatigue. One honest fast stage beats a long pipeline everyone ignores.


References