mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 10:35:51 +00:00
8aeffc456d
The Build and Test workflow ran everything in one serial job — frontend lint/tests/build, the full go test -race sweep, and benchmarks — for a 37-55 minute wall clock on every push. The job now splits into parallel jobs: frontend (lint, unit tests, type-check, bundle build and size gate), backend tests sharded three ways with internal/api on its own shard since it alone takes ~10m under -race, script smoke tests with the backend build, and benchmarks with the existing baseline cache flow. Backend jobs satisfy the frontend embed with a stub index.html, which unit tests do not assert against; the real bundle is still built and size-gated by the frontend job and by release builds. Expected wall clock is roughly the slowest single job, 10-15 minutes. A new changes job skips the build/test jobs when a push touches only docs/ and Markdown, mirroring the path filters Core E2E already has. The gitleaks secret scan deliberately stays unconditional since this workflow is the only per-push scan and docs can leak secrets too. scripts/dev-prepush.sh runs the checks that most often turn main red, scoped to the outgoing commits: the canonical completion guard in CI mode, the registry snapshot tests when registry.json changed, the mutation registry audits, build plus tests for touched Go packages, and the frontend type-check. It exists because CI verdicts arrive well after the push; today's unclassified force-fail route would have failed it locally in about a minute. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>