rust-playground
rust-playground copied to clipboard
CI when miri is not available for the most recent nightly
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:
https://github.com/integer32llc/rust-playground/blob/5ff43d72affe1eff0293c47241c51e3603ad9811/compiler/miri/Dockerfile#L1-L2
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.
