You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: prioritize required checks before long advisory suites - #2356
Delivery status: Integrated as f2c04d0bb5c04a7a0d281f0fef070824591d28b9; #2355 is closed. All required queue contexts passed. Its observational Windows queue run had hook timeouts; the separate main CI43057992044 on the same SHA passed. Occurrence and scope; no timing root cause or quantified speedup is inferred.
Problem and result
Required merge queue jobs can wait for runners while long advisory suites occupy capacity. Unit, E2E and Plugin now finish before Race, full Windows and native macOS Go suites are admitted to runners. All suites retain their events, commands, prerequisites, source revision, failures and timeouts.
flowchart TD
A[PR / merge group / main push] --> B[Unit / E2E / Plugin]
A --> C[Other existing independent checks]
B --> D{Run cancelled?}
D -->|No, including failed or skipped prerequisites| E[Race / Windows full / macOS native Go]
D -->|Yes| F[Cancel diagnostic suites]
Loading
Verification
Node 24 on WSL/Linux: all 838 policy tests completed, 832 PASS and six platform skips. Actionlint PASS with external shellcheck/pyflakes disabled. Hosted CI and review receipt status are recorded below; actual post-merge queue latency remains unmeasured.
Risk
This orders jobs within each run; it does not provide priority across runs or change runner quotas. Advisory PR feedback and overall workflow completion can arrive later, including on platforms with separate capacity. Other jobs still compete for runners. Required contexts and repository settings are unchanged. !cancelled() preserves diagnostic execution after failed/skipped prerequisites; no successful fallback is introduced. Rollback reverts this scheduling unit and its owning tests/docs.
Candidate and verification receipt
Base: 02e244f453491c5e3ba9782a232bf3f089a30eca. Frozen working candidate: f9766dc8c2619d114b85cf129ec28eac30eb21ee14459846ee34ec03afbb0cac.
Delivered head: a721097dbd36f0158280ed2e6e959727a3d42bb5, nine files, 71 additions/six deletions. Post-commit equivalence PASS: reconstructed original HEAD/index reproduces the reviewed fingerprint; all nine Git-normalized file blobs match the committed tree. Clean working tree.
Independent read-only review by validator_2920: no actionable findings; before/after frozen fingerprint identical. Reviewer inverted only the six scheduling lines to recover the exact original LF-normalized workflow, verified its protected hash and all 22 job dependencies form an acyclic graph. Independent affected-contract execution on WSL: 114 PASS/five native Windows skips out of 119, zero failures, 3.772s. Helper mutation probes retained arbitrary conditions/dependencies/duplicate blocks for rejection. Status-predicate logic checks are not hosted execution proof.
Workflow delta is exactly six added scheduling lines in three jobs. Every existing step, permission, cache identity, command, deadline and checkout remains unchanged; required jobs gain no dependency or event condition.
Baseline regression RED: the new queue contract failed on the absence of the Race dependency. Owning guards now exempt only the exact reviewed two-line preamble, while existing negative tests still reject additional dependencies and conditional test suppression. New mutations reject partial dependencies, success-only/event-filter/always guards and dependencies from required jobs back to advisory suites.
node --test .github/scripts/*.test.mjs on Node 24 under WSL: exit 0, 838 tests, 832 pass, six platform skips, 3.673s. This tests workflow contracts, not actual GitHub scheduling or native Go behavior.
Initial native Windows focused run: 112 pass, two macOS reporter fixture cleanup EPERM failures. Linux focused run: 109 pass/five native Windows skips. Broader verification caught the expected protected workflow hash change and a raw-CRLF regex limitation; updated the hash only after confirming the six-line delta, and used LF workflow bytes matching the Git blob. The final full Linux run above passed. An intermediate wrapper exited incorrectly after passing tests; the corrected command was rerun with exit 0.
No Go production changes; full Go suites are left to normal hosted CI. No new workflow dispatch, protection-rule mutation or live queue cancellation was performed. Before/after hosted latency and failed-prerequisite scheduling are not yet runtime proof; the intended status-function behavior follows GitHub's workflow semantics.
All applicable executed hosted checks passed for head a721097. CodeRabbit review completed without actionable comments. The normal merge queue integrated this change as f2c04d0 on 2026-11-11; ci: prioritize required checks before long advisory suites #2355 is closed. Actual merge-group timestamps confirm the three full suites started after Unit/E2E/Plugin completed; no quantified latency improvement is claimed. Fresh local focused WSL/Linux execution: 59 PASS/four Windows-only skips (63 total, exit 0, 4.421s). Fresh native Windows execution: 61 PASS/two macOS-reporter cleanup EPERM failures, the same limitation recorded above; no green native run is claimed. Scheduling contracts passed on both.
No actionable comments were generated in the recent review.
Walkthrough
Three full-suite CI jobs now wait for Unit, E2E, and Plugin jobs before running. They use a cancellation condition that allows execution after prerequisite failures or skips. Contract tests and CI documentation cover the scheduling rules.
Changes: CI suite scheduling
Layer / File(s)
Summary
Schedule full-suite jobs after technical checks .github/workflows/ci.yml, CONTRIBUTING.md, docs/ci-go-race.md
The Race, native macOS, and Windows suite jobs now depend on Unit, E2E, and Plugin jobs and use !cancelled(). The documentation describes this scheduling, cancellation behavior, and the race job’s execution-time budget.
New contract checks verify the suite dependencies and cancellation condition, and reject added suite dependencies on technical-check jobs. Existing job-contract checks remove the priority declarations before validation. The workflow hash baseline is updated.
sequenceDiagram
participant GitHubActions
participant UnitTests
participant E2ETests
participant PluginTests
participant RaceTests
participant MacOSNativeTests
participant WindowsSuite
par Run prerequisite jobs
GitHubActions->>UnitTests: Run unit tests
GitHubActions->>E2ETests: Run E2E tests
GitHubActions->>PluginTests: Run plugin tests
end
GitHubActions->>RaceTests: Schedule after prerequisites unless cancelled
GitHubActions->>MacOSNativeTests: Schedule after prerequisites unless cancelled
GitHubActions->>WindowsSuite: Schedule after prerequisites unless cancelled
This change reorders CI scheduling so required checks get runner capacity before the long advisory suites. No concrete merge-blocking risk was found; queue-latency effects will be visible after merge.
Pre-merge checks: 4
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title clearly and concisely describes the main change: prioritizing required checks before long advisory suites.
Linked Issues check
The PR satisfies the coding requirements in directly linked issue #2355. ci.yml keeps pull_request, merge_group, and push events. race-tests, windows-suite, and macos-native-tests now us…
Out of Scope Changes check
The changes remain within issue #2355. The helper removes the scheduling declarations only for baseline contract tests. The added mutations verify rejection of invalid scheduling. The workflow changes…
Full details: Linked Issues check
Explanation
The PR satisfies the coding requirements in directly linked issue #2355. ci.yml keeps pull_request, merge_group, and push events. race-tests, windows-suite, and macos-native-tests now use needs: [unit-tests, e2e-tests, plugin-tests] and if: ${{ !cancelled() }}. The required jobs remain independent. Existing suite commands, checkout SHA, permissions, timeouts, and cache configuration remain present in the reviewed workflow evidence. Regression tests cover prerequisites, conditions, dependency direction, event coverage, source revision, steps, commands, and dependency cycles. The PR reports passing policy tests, actionlint, and independent review.
Full details: Out of Scope Changes check
Explanation
The changes remain within issue #2355. The helper removes the scheduling declarations only for baseline contract tests. The added mutations verify rejection of invalid scheduling. The workflow changes contain the requested six scheduling lines. CONTRIBUTING.md and docs/ci-go-race.md document the same scheduling behavior and its limits. No unrelated production or Go changes are reported.
Finishing Touches
Generate unit tests (beta)
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 6 remain after this review.
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
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.
Delivery status: Integrated as
f2c04d0bb5c04a7a0d281f0fef070824591d28b9; #2355 is closed. All required queue contexts passed. Its observational Windows queue run had hook timeouts; the separate main CI43057992044 on the same SHA passed. Occurrence and scope; no timing root cause or quantified speedup is inferred.Problem and result
Required merge queue jobs can wait for runners while long advisory suites occupy capacity. Unit, E2E and Plugin now finish before Race, full Windows and native macOS Go suites are admitted to runners. All suites retain their events, commands, prerequisites, source revision, failures and timeouts.
Closes #2355 — approved scheduling design and observed queue waits. This preserves the Race cadence accepted in #2020.
flowchart TD A[PR / merge group / main push] --> B[Unit / E2E / Plugin] A --> C[Other existing independent checks] B --> D{Run cancelled?} D -->|No, including failed or skipped prerequisites| E[Race / Windows full / macOS native Go] D -->|Yes| F[Cancel diagnostic suites]Verification
Node 24 on WSL/Linux: all 838 policy tests completed, 832 PASS and six platform skips. Actionlint PASS with external shellcheck/pyflakes disabled. Hosted CI and review receipt status are recorded below; actual post-merge queue latency remains unmeasured.
Risk
This orders jobs within each run; it does not provide priority across runs or change runner quotas. Advisory PR feedback and overall workflow completion can arrive later, including on platforms with separate capacity. Other jobs still compete for runners. Required contexts and repository settings are unchanged.
!cancelled()preserves diagnostic execution after failed/skipped prerequisites; no successful fallback is introduced. Rollback reverts this scheduling unit and its owning tests/docs.Candidate and verification receipt
02e244f453491c5e3ba9782a232bf3f089a30eca. Frozen working candidate:f9766dc8c2619d114b85cf129ec28eac30eb21ee14459846ee34ec03afbb0cac.a721097dbd36f0158280ed2e6e959727a3d42bb5, nine files, 71 additions/six deletions. Post-commit equivalence PASS: reconstructed original HEAD/index reproduces the reviewed fingerprint; all nine Git-normalized file blobs match the committed tree. Clean working tree.validator_2920: no actionable findings; before/after frozen fingerprint identical. Reviewer inverted only the six scheduling lines to recover the exact original LF-normalized workflow, verified its protected hash and all 22 job dependencies form an acyclic graph. Independent affected-contract execution on WSL: 114 PASS/five native Windows skips out of 119, zero failures, 3.772s. Helper mutation probes retained arbitrary conditions/dependencies/duplicate blocks for rejection. Status-predicate logic checks are not hosted execution proof.node --test .github/scripts/*.test.mjson Node 24 under WSL: exit 0, 838 tests, 832 pass, six platform skips, 3.673s. This tests workflow contracts, not actual GitHub scheduling or native Go behavior.actionlint -shellcheck= -pyflakes= .github/workflows/ci.yml: exit 0. Git diff whitespace check passed.