Tracking issue for auditing and possibly eliminating difference between PR CI and Auto CI jobs
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
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).
- See #144244 where a weaker version of the subset relationship with
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.
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/ci/github-actions/jobs.yml, comparing the PR and Auto job configurations around the cited x86_64-gnu-tools entries and DEPLOY_TOOLSTATES_JSON setting. Review PR #144244 and the listed issue and discussion for existing subset checks; done means auditing the known differences and defining or implementing the strict PR-is-subset-of-Auto invariant without unlisted carve-outs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, rust
- Domain
- ci-cd
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100