Rollup merge of #85996 - jyn514:library-changes, r=Mark-Simulacrum

rustbuild: take changes to the standard library into account for `download-rustc`

Previously, changing the standard library with `download-rustc =
"if-unchanged"` would incorrectly reuse the cached compiler and standard
library from CI, which was confusing and led to incorrect test failures
or successes.

r? `@Mark-Simulacrum`
This commit is contained in:
Yuki Okushi 2021-06-07 15:21:02 +09:00 committed by GitHub
commit 7d07cfbbe7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -648,18 +648,20 @@ class RustBuild(object):
rev_parse = ["git", "rev-parse", "--show-toplevel"] rev_parse = ["git", "rev-parse", "--show-toplevel"]
top_level = subprocess.check_output(rev_parse, universal_newlines=True).strip() top_level = subprocess.check_output(rev_parse, universal_newlines=True).strip()
compiler = "{}/compiler/".format(top_level) compiler = "{}/compiler/".format(top_level)
library = "{}/library/".format(top_level)
# Look for a version to compare to based on the current commit. # Look for a version to compare to based on the current commit.
# Only commits merged by bors will have CI artifacts. # Only commits merged by bors will have CI artifacts.
merge_base = ["git", "log", "--author=bors", "--pretty=%H", "-n1"] merge_base = ["git", "log", "--author=bors", "--pretty=%H", "-n1"]
commit = subprocess.check_output(merge_base, universal_newlines=True).strip() commit = subprocess.check_output(merge_base, universal_newlines=True).strip()
# Warn if there were changes to the compiler since the ancestor commit. # Warn if there were changes to the compiler or standard library since the ancestor commit.
status = subprocess.call(["git", "diff-index", "--quiet", commit, "--", compiler]) status = subprocess.call(["git", "diff-index", "--quiet", commit, "--", compiler, library])
if status != 0: if status != 0:
if download_rustc == "if-unchanged": if download_rustc == "if-unchanged":
return None return None
print("warning: `download-rustc` is enabled, but there are changes to compiler/") print("warning: `download-rustc` is enabled, but there are changes to \
compiler/ or library/")
if self.verbose: if self.verbose:
print("using downloaded stage1 artifacts from CI (commit {})".format(commit)) print("using downloaded stage1 artifacts from CI (commit {})".format(commit))