rust-lang / rust-lang/rust-playground
CI when miri is not available for the most recent nightly
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1.4k
- Forks
- 267
- Avg merge
- 3h 2m
- Merged PRs (30d)
- 6
Description
As seen in https://rust-lang-nursery.github.io/rust-toolstate/ and https://rust-lang.github.io/rustup-components-history/, the miri rustup component is not always available in every nightly. Currently when this happens, CI on PRs to this repo fails in the "Build miri tool container" job, which is not a good contributor experience, since this failure has nothing to do with the content of the PR.
Currently the miri container is built FROM shepmaster/rust-nightly, which is the most recent nightly, not necessary the most recent nightly that supports miri:
I would propose that we instead build it FROM shepmaster/rust-nightly-miri, which will be conditionally pushed by the same job that pushes shepmaster/rust-nightly. Basically the job will push shepmaster/rust-nightly, then run docker run shepmaster/rust-nightly rustup component add miri and if the exit code is 0, then push the same container as shepmaster/rust-nightly-miri. This way shepmaster/rust-nightly-miri will always track the most recent nightly that supports miri, and not get updated during intervals that miri is unavailable on nightly.
Contributor guide
No contributing guide indexed for this repository
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 compiler/miri/Dockerfile, especially lines 1–2, then inspect the CI job named "Build miri tool container" and the job that pushes shepmaster/rust-nightly. Verify how the miri component check and conditional image publication should fit there. Done means PR CI does not fail merely because miri is unavailable in the newest nightly, while the miri image tracks a compatible nightly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, rust
- Domain
- ci-cd, devops
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100