-
Notifications
You must be signed in to change notification settings - Fork 14k
Description
In https://internals.rust-lang.org/t/updates-on-rusts-ci-uploads/6062 I found out that the rust-lang-ci S3 bucket, which Servo relies on, is ephemeral. Only nigthlies are kept around long-term. I’ll switch Servo to download from http://static.rust-lang.org/dist/ where possible, but there’s one thing missing: tarballs for rustc "alt" builds. I’d like to have these somewhere where they’ll stay available.
I assume that the reason for removing old files from rust-lang-ci / rust-lang-ci2 is the cost in storage space for many build artifacts for every single merged PR. So this proposal limits the amount of files to keep:
- To one set per Nightly version
- To just one rustc tarball per supported platform.
First, we could limit the amount of files uploaded to rust-lang-ci2/rustc-builds-alt in the first place. Based on running aws s3 ls --no-sign-request, CI produces:
cargo-nightly-$HOST.tar.$Zrls-nightly-$HOST.tar.$Zrust-analysis-nightly-$HOST.tar.$Zrustc-nightly-$HOST.tar.$Zrustc-nightly-src.tar.$Zrust-docs-nightly-$HOST.tar.$Zrust-nightly-$HOST.exerust-nightly-$HOST.msirust-nightly-$HOST.pkgrust-nightly-$HOST.tar.$Zrust-src-nightly.tar.$Zrust-std-nightly-$HOST.tar.$Z
… for each combination of $Z in gz or xz, and $HOST in x86_64-apple-darwin, x86_64-pc-windows-msvc, and x86_64-unknown-linux-gnu.
Everything other than rustc-nightly-$HOST.tar.$Z is identical in rustc-builds and rustc-builds-alt. So it could be dropped or not uploaded in the first place or not not built in the first place. This probably involves making src/ci/docker/dist-x86_64-linux/Dockerfile do things more differently when the DEPLOY_ALT env variable is set.
(Perhaps gz can be dropped too? Old rustup versions that don’t support xz don’t support fetching alt builds either.)
Separately, https://github.com/rust-lang/rust-central-station/blob/master/promote-release/src/main.rs (at least) needs to be modified to copy/upload these extra tarballs. I don’t know if it’s preferable to do this when self.release == "nightly" or in a separate cron job with self.release == "nightly-alt".
Ultimately this will also be a step toward rust-lang/rustup#1099, but Servo can already use this in the meantime.
@aturon, @alexcrichton, how does this all sound?