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
Currently, rust-lang/rust PR jobs are not a subset of Auto jobs in the strict sense. That is, a defined PR job does not imply it is run with the exact same configuration in Auto CI.
Why might this be a problem?
When there are CI jobs (or job configurations) that are PR-only, and not also run as part of Auto jobs, it's possible to have master end up in a state where all subsequent PR jobs will be red, even in unrelated PRs. See for instance #144183 and discussions in #t-infra > Spellcheck workflow now fails on all PRs (tree bad?).
Potentially ideal CI invariant
Ideally, we may want to enforce the CI invariant that PR CI jobs are a subset of Full CI jobs in the strict-sense, with no carve-outs (other than fail-fast or not).
It was discussed that we should use/implement toolstate or some other mechanism for experimental jobs, and not expose contributors to failing PR CI if said job does break.
Currently,
rust-lang/rustPR jobs are not a subset of Auto jobs in the strict sense. That is, a defined PR job does not imply it is run with the exact same configuration in Auto CI.Why might this be a problem?
When there are CI jobs (or job configurations) that are PR-only, and not also run as part of Auto jobs, it's possible to have
masterend up in a state where all subsequent PR jobs will be red, even in unrelated PRs. See for instance #144183 and discussions in #t-infra > Spellcheck workflow now fails on all PRs (tree bad?).Potentially ideal CI invariant
Ideally, we may want to enforce the CI invariant that PR CI jobs are a subset of Full CI jobs in the strict-sense, with no carve-outs (other than fail-fast or not).
envandcontinue_on_errorcarve-outs is enforced. However,envbeing excluded is quite substantial, because env vars can substantially enforce what gets run.Kinds of differences
Warning
This listing is non-exhaustive. Please feel free to add more known differences.
x86_64-gnu-tools: getsDEPLOY_TOOLSTATES_JSON: toolstates-linux.jsonset only in Auto environment.rust/src/ci/github-actions/jobs.yml
Lines 440 to 443 in 6781992
rust/src/ci/github-actions/jobs.yml
Lines 158 to 159 in 6781992
Implementation history
Non-blocking jobs
It was discussed that we should use/implement toolstate or some other mechanism for experimental jobs, and not expose contributors to failing PR CI if said job does break.