Repository navigation
CI: a gate job over every job, and which legs it requires #71
Description
Decided in decision 113, part of #118.
CIneedschanges,test,packandconsumer, runs underalways(), and runsci-lanes gateontoJSON(needs)(a C# tool, decision 92). It fails a failed or cancelledChanges, alegsorpackanswer the selection does not write, a selected job that did not succeed, an unselected job that was not skipped, and a job its table does not know. A conventions test holds itsneedsto every other job. Every selected leg blocks: the probe legs this issue names left CI with decision 112. Required checks after the merge:CIandLabels and issue linkonmain, andCIadded to the release-branch ruleset.
Problem
main requires Test (ubuntu-latest), Pack, Consumer smoke test and Labels and issue link. None of these is required:
Changes(whose failure skips Pack and Consumer, which then read as passing; The Changes job fails open, misses renames, and does not list tools/Shared or .config/dotnet-tools.json #70)- the Windows and macOS test legs
A red leg does not block a merge. In the last 60 PR runs, Test (windows-latest) failed 3 times (the probe legs, retired since by decision 112, failed more). GitHub also reports any skipped job as Success on a required check, so the required list cannot tell an intended skip from an accidental one.
Change
- Add a
CIjob that needs every other job, runs withif: always(), and passes only when:Changessucceeded- every selected job succeeded
- every unselected job was skipped
- every selection answer is exactly
trueorfalse
- It writes a job/selected/result table to the job summary.
- Make
CI(plusLabels and issue link) the required checks onmain. Add it to therelease/**ruleset. - Decide whether the OS legs block (decided: they do).
- Order: add
CI, let it report green onmainand the open release branch, then switch protection. Removing a required name first would leave every open PR pending. - The gate is a C# tool or a short step, following ADR 0092.
Done when
CI is the required build check, and seeds for a failed Changes, a cancelled leg, a misspelled selection output and a selected-but-skipped job each fail it.
Activity
CaffeinatedCoder commentedon Oct 29, 2026
Done in #123, merged into
release/2.3.0as a92e5bc (decision 113). Closed by hand:Closescloses nothing on a merge into a release branch.