Build & Verify
Build & Verify
Section titled “Build & Verify”Every code change must pass the standard pipeline before it is committed. Each stage only runs if the previous one succeeded.
Standard pipeline
Section titled “Standard pipeline”# pnpm (PowerShell: use ';' instead of '&&')pnpm typecheck; if ($?) { pnpm lint }; if ($?) { pnpm test }; if ($?) { pnpm build }| Stage | Command | Must pass |
|---|---|---|
| Typecheck | pnpm typecheck |
0 errors (strict mode) |
| Lint | pnpm lint |
clean |
| Unit tests | pnpm test |
all green (API: Jest, Web: Vitest) |
| Build | pnpm build |
all packages compile |
Additional checks by change type
Section titled “Additional checks by change type”| Change | Extra verification |
|---|---|
| API changes | pnpm --filter @flowgeist-tool/api test:e2e |
| Web changes | pnpm e2e (Playwright) |
| Docker / YAML | docker compose -f docker/docker-compose.prod.yml config --quiet |
| Shell scripts | wsl bash -n <script> (syntax check) |
What CI enforces
Section titled “What CI enforces”The GitHub CI runs the same pipeline plus additional gates — a change is not considered done until it passes locally and in CI:
- Lint & Typecheck
- Unit & Integration Tests
- E2E API Tests + E2E UI Tests
- Docker Build Smoke Test
- Security: CodeQL, Semgrep, Trivy, SBOM & Security Audit
- OWASP ZAP baseline scan (DAST, weekly + on demand)