Skip to content

Making alt build available together with Nightly #45334

Closed
@SimonSapin

Description

@SimonSapin

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.$Z
  • rls-nightly-$HOST.tar.$Z
  • rust-analysis-nightly-$HOST.tar.$Z
  • rustc-nightly-$HOST.tar.$Z
  • rustc-nightly-src.tar.$Z
  • rust-docs-nightly-$HOST.tar.$Z
  • rust-nightly-$HOST.exe
  • rust-nightly-$HOST.msi
  • rust-nightly-$HOST.pkg
  • rust-nightly-$HOST.tar.$Z
  • rust-src-nightly.tar.$Z
  • rust-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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    T-infraRelevant to the infrastructure team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions