mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
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:
commit
7d07cfbbe7
@ -648,18 +648,20 @@ class RustBuild(object):
|
||||
rev_parse = ["git", "rev-parse", "--show-toplevel"]
|
||||
top_level = subprocess.check_output(rev_parse, universal_newlines=True).strip()
|
||||
compiler = "{}/compiler/".format(top_level)
|
||||
library = "{}/library/".format(top_level)
|
||||
|
||||
# Look for a version to compare to based on the current commit.
|
||||
# Only commits merged by bors will have CI artifacts.
|
||||
merge_base = ["git", "log", "--author=bors", "--pretty=%H", "-n1"]
|
||||
commit = subprocess.check_output(merge_base, universal_newlines=True).strip()
|
||||
|
||||
# Warn if there were changes to the compiler since the ancestor commit.
|
||||
status = subprocess.call(["git", "diff-index", "--quiet", commit, "--", compiler])
|
||||
# Warn if there were changes to the compiler or standard library since the ancestor commit.
|
||||
status = subprocess.call(["git", "diff-index", "--quiet", commit, "--", compiler, library])
|
||||
if status != 0:
|
||||
if download_rustc == "if-unchanged":
|
||||
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:
|
||||
print("using downloaded stage1 artifacts from CI (commit {})".format(commit))
|
||||
|
Loading…
Reference in New Issue
Block a user