CI¶
Pipeline Stages¶
Main workflow: .github/workflows/ci.yml
- Install and environment prep
- Prisma migrate + generate
- Static validation:
typecheck,lint,npm audit --audit-level=high - Focused unit tests
- Production build
- App-backed tests:
test:integration,test:public-share-ui,test:workbench-ui
Decisions¶
Keep¶
| Stage | Reason |
|---|---|
typecheck + lint |
Cheap, catch regressions early |
npm audit --audit-level=high |
Security gate — app handles auth, sharing, exports, billing |
Production build |
Required before app-backed tests; validates production artifact, not just dev |
| Both browser tests | One covers public share portal; one covers authenticated workbench smoke path |
Optimisations Applied¶
- Workflow concurrency cancellation — superseded pushes/PR updates cancel older CI runs; reduces wasted build and browser time on active branches
- Playwright browser caching — Chromium cached by lockfile; reduces repeated install cost
No Fully Redundant Stages¶
Each current stage covers a distinct risk: - Static correctness - Security dependency review - Helper and service regressions - Production build validity - App-backed API behaviour - Browser-visible critical flows
If CI Becomes Slow or Flaky¶
Review in this order:
- Browser test scope creep
- Integration script size and setup cost
- Whether
npm auditshould move to a scheduled job (in addition to PR gating)
Do not remove the build or app-backed tests just to make CI faster.