Skip to content

feat(ci): parallelize qc into 3 jobs + composite setup action + caches#66

Merged
w1ne merged 4 commits intodevelopfrom
feat/ci-acceleration
May 4, 2026
Merged

feat(ci): parallelize qc into 3 jobs + composite setup action + caches#66
w1ne merged 4 commits intodevelopfrom
feat/ci-acceleration

Conversation

@w1ne
Copy link
Copy Markdown
Owner

@w1ne w1ne commented May 4, 2026

Summary

Cuts CI wall-clock from ~3:30 to ~1:30 (≈45% reduction) by parallelizing the `qc` step into three independent jobs and adding three caches.

Spec: `docs/superpowers/specs/2026-05-04-ci-acceleration-design.md` (commit e460243).

What changes

  • `package.json`: new `qc:lint` / `qc:build` / `qc:test` sub-scripts; existing `qc` becomes a meta-script that runs them sequentially. Local `npm run qc` workflow unchanged.
  • `.github/actions/setup-cad/action.yml` (new composite): setup-node + node_modules cache + .tsbuildinfo/.vite cache + conditional npm ci. Shared across all jobs in both workflows.
  • `.github/workflows/ci.yml`: three parallel QC jobs (lint / build-and-checks / test) + existing e2e job (now gated on all three). Standalone `Build` step removed (redundant with `qc:build`).
  • `.github/workflows/deploy.yml`: same three QC jobs + new `web-build` job for the Vite production bundle (Pages artifact). e2e + deploy gates on the three QC jobs (deploy also gates on web-build).

Validation

  • Spec: this PR's CI run IS the validation. Watch the Actions tab — three jobs should run in parallel, wall-clock should be max-of-three (~90s), not sum.
  • Cache miss on first run is expected (fresh keys); cache hit on subsequent runs proves the cache restore path works.
  • Local: `npm run qc` still runs all eight underlying commands sequentially in the original order.

Risks

5 risks documented in the spec; key ones:

  • Cache miss rate too high — keyed on source content; partial-hit fallback via `restore-keys:` for the build cache.
  • Build step removed — `vite build` regressions surface at release-time (deploy.yml) instead of PR-time. Acceptable trade.
  • Composite action drift — kept tight (setup + caches + conditional install only); per-job extras live in jobs.

Test plan

  • CI on this PR shows three parallel jobs in the Actions tab.
  • Wall-clock < 2:00 on this PR.
  • Subsequent push to this branch → cache hit, wall-clock < 1:30.
  • All previously-passing tests still pass.

@w1ne w1ne enabled auto-merge (squash) May 4, 2026 16:55
@w1ne w1ne merged commit a1972bd into develop May 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant