Make preflight checks the root of the PR builder job graph - #4370
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe pull-request builder workflow now supports manual dispatch, skips diff-dependent checks during manual runs, synchronizes downstream jobs with preflight, and directly gates documentation and Windows validation on preflight outputs. ChangesWorkflow gating
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Purpose
Today every root job in the PR Builder is dispatchable at once, so a run asks for ~8 runners simultaneously and which one starts first is down to luck in the shared runner pool. Preflight Checks (~20s: pnpm audit, dependency review, docs/PowerShell detection) frequently sits at "Expected - Waiting for status to be reported" while the 15-minute Console App Tests is already burning a runner, and when preflight does fail, everything else has already run to completion.
This makes Preflight Checks the root of the job graph, so it both starts first and gates everything else.
Follow-up to #4269. Refs #4268.
Approach
needs: [preflight]added to the eight root jobs: verify-mocks, lint, build, test-backend-unit, test-frontend-packages, test-frontend-gate-app, test-frontend-console-app, build_samples. Everything else already reaches preflight transitively, so the only job left ungated iscodecov-merge-queue-status, which is a merge-queue-only status stamp that must not wait behind anything.workflow_dispatch, which keeps the gating condition on every dependent job unchanged (noalways()or result-juggling needed: plainneedssemantics do the right thing). Its two diff-based steps, paths-filter and dependency review, are skipped on dispatch because they need a base/head pair that a manual dispatch does not carry; the pnpm audit does run, which is a small improvement over dispatch runs skipping it entirely today.build-docsandvalidate-windowsdropped theiralways() &&prefix. With it, a preflight that failed after the filter step could still let them run; without it, they run only when preflight succeeded and the relevant paths changed.Effect
Behavior is otherwise unchanged: the trigger-pr-builder label gate, merge queue runs, and required checks all work exactly as before.
Related Issues
Related PRs
Checklist
breaking changelabel added.Security checks
Summary by CodeRabbit