Skip to content

Parallelize and cache the quality gate - #45

Merged
robinbraemer merged 1 commit into
mainfrom
ci/parallel-quality-gate
Aug 27, 2026
Merged

robinbraemer merged 1 commit into
mainfrom
ci/parallel-quality-gate

Conversation

@robinbraemer

Copy link
Copy Markdown
Member

Restructures the single serial ~17-minute macos job into parallel jobs behind the same required check name, per the CI optimization research (no new build tools - the repo is single-package, so task-graph cachers were evaluated and rejected).

  • checks (ubuntu): lint, typecheck, unit, effect/rifty/skill/quality gates
  • e2e (macos-15): production build + Playwright suite, bounded failure evidence upload
  • desktop (macos-15): sidecar + cargo fmt/test + Tauri bundle with Swatinem/rust-cache; builds its own clean production frontend
  • changes (dorny/paths-filter): docs-only PRs skip e2e/desktop while the required Flect quality gate summary job always reports
  • The summary job carries the failure probe and fails unless every needed job succeeded or was intentionally skipped
  • All new actions pinned by full commit SHA; no-cache removed from setup-bun
  • scripts/github-quality-workflow.test.ts rewritten to lock the new contract (parallelism, pins, always-reporting gate)

Expected: ~17 min -> ~8-9 min warm wall clock for code changes, ~2-3 min for docs-only; first run on this PR is the cold-cache proof.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VNmFXmRMNV98Hyd3xogUuK

Split the single serial macos-15 quality job into fully independent
parallel jobs to cut wall-clock latency while keeping the same commands
and evidence:

- checks (ubuntu-latest): bun run check, the static and unit gate.
- e2e (macos-15): Playwright against the production build, uploading
  only bounded failure evidence.
- desktop (macos-15): pinned Rust toolchain with Swatinem/rust-cache,
  sidecar build, cargo fmt/test, and a release-mode Tauri app bundle
  whose stock beforeBuildCommand produces its own clean, flag-free
  production frontend.
- changes: dorny/paths-filter classifies pull requests so
  documentation-only changes (Markdown, docs/, .agents/) skip the
  browser and desktop jobs; anything ambiguous counts as code.
- gate: the required "Flect quality gate" summary job always reports,
  carries the workflow_dispatch failure probe, and fails unless every
  needed job succeeded or was intentionally skipped as docs-only.

The three quality jobs start immediately in parallel, so the warm wall
clock is the slowest single job instead of the serial sum. New actions
are pinned by full commit: dorny/paths-filter v4.0.3 and
Swatinem/rust-cache v2.9.2. Bun dependency caching is enabled by
dropping setup-bun's no-cache flag. Local check:all behavior is
unchanged. The workflow contract test now asserts the parallel shape,
and CONTRIBUTING/README describe it.

Claude-Session: https://claude.ai/code/session_01VNmFXmRMNV98Hyd3xogUuK
@robinbraemer
robinbraemer merged commit 4dd8f57 into main Aug 27, 2026
5 checks passed
@robinbraemer
robinbraemer deleted the ci/parallel-quality-gate branch August 28, 2026 08:54
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