Parallelize and cache the quality gate - #45
Merged
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 gatese2e(macos-15): production build + Playwright suite, bounded failure evidence uploaddesktop(macos-15): sidecar + cargo fmt/test + Tauri bundle with Swatinem/rust-cache; builds its own clean production frontendchanges(dorny/paths-filter): docs-only PRs skip e2e/desktop while the requiredFlect quality gatesummary job always reportsno-cacheremoved from setup-bunscripts/github-quality-workflow.test.tsrewritten 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