Ensure the release works before uploading the tarballs#25
Merged
Conversation
This commit starts to use build-manifest's new checksum cache feature, which stores all the checksums it calculated in a JSON file before exiting. This allows to avoid duplicate calculations.
This commit changes how build-manifest is invoked, stopping it from generating the manifests directly into the downloads directory. Instead, the files are generated in a separate directory and then merged back. While there is not much point in doing so *right now*, this will be crucial to implement smoke tests for the release, as we need to generate a separate set of manifests with a different download URL to be able to perform the smoke test. Having the generated output in a separate directory will allow to easily discard those temporary manifests and their signatures in a clean way.
This commit changes the release process to execute a "smoke test" before uploading the release to the destination buckets, by generating another set of manifests pointing to a localhost server serving the files we're about to upload. After the localhost web server is up then rustup is invoked to download the toolchain, and cargo is invoked to create a binary project and run the hello world in it. If any of this fails the release is aborted.
4e2fb7d to
bfac3ba
Compare
Member
|
r=me |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a section to the release process to make sure the release we're about to upload can be installed and can run "Hello world". This is mainly meant to prevent a bug in
build-manifestmaking the release impossible to install, and could give us more confidence in making changes to it.The steps executed during the smoke test are:
build-manifestpointing to the HTTP address of the server created earlier, and the checksums it generated are cached to allow the followingbuild-manifestexecution to complete in just a couple of seconds.RUSTUP_DIST_SERVERpointing to the local webserver, first removing the existing toolchain and then installing the release we're about to upload to production. This ensures installing the toolchain works.cargo init --bin .andcargo runin a temporary directory. This ensures the toolchain is not incredibly broken.Fixes #15
This PR can be reviewed commit-by-commit.
r? @Mark-Simulacrum