force-recompile library changes on download-rustc="if-unchanged"
This makes download-rustc="if-unchanged" more functional and useful for library developers. Signed-off-by: onur-ozkan <work@onurozkan.dev>
This commit is contained in:
parent
5f5c243ca0
commit
5cf6b8bdee
@ -153,7 +153,6 @@ fn run(self, builder: &Builder<'_>) {
|
|||||||
// NOTE: the beta compiler may generate different artifacts than the downloaded compiler, so
|
// NOTE: the beta compiler may generate different artifacts than the downloaded compiler, so
|
||||||
// its artifacts can't be reused.
|
// its artifacts can't be reused.
|
||||||
&& compiler.stage != 0
|
&& compiler.stage != 0
|
||||||
// This check is specific to testing std itself; see `test::Std` for more details.
|
|
||||||
&& !self.force_recompile
|
&& !self.force_recompile
|
||||||
{
|
{
|
||||||
let sysroot = builder.ensure(Sysroot { compiler, force_recompile: false });
|
let sysroot = builder.ensure(Sysroot { compiler, force_recompile: false });
|
||||||
|
@ -2767,25 +2767,32 @@ fn download_ci_rustc_commit(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let files_to_track =
|
let mut files_to_track = vec!["compiler", "src/version", "src/stage0", "src/ci/channel"];
|
||||||
&["compiler", "library", "src/version", "src/stage0", "src/ci/channel"];
|
|
||||||
|
// In CI, disable ci-rustc if there are changes in the library tree. But for non-CI, ignore
|
||||||
|
// these changes to speed up the build process for library developers. This provides consistent
|
||||||
|
// functionality for library developers between `download-rustc=true` and `download-rustc="if-unchanged"`
|
||||||
|
// options.
|
||||||
|
if CiEnv::is_ci() {
|
||||||
|
files_to_track.push("library");
|
||||||
|
}
|
||||||
|
|
||||||
// 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.
|
||||||
let commit = match self.last_modified_commit(files_to_track, "download-rustc", if_unchanged)
|
let commit =
|
||||||
{
|
match self.last_modified_commit(&files_to_track, "download-rustc", if_unchanged) {
|
||||||
Some(commit) => commit,
|
Some(commit) => commit,
|
||||||
None => {
|
None => {
|
||||||
if if_unchanged {
|
if if_unchanged {
|
||||||
return None;
|
return None;
|
||||||
|
}
|
||||||
|
println!("ERROR: could not find commit hash for downloading rustc");
|
||||||
|
println!("HELP: maybe your repository history is too shallow?");
|
||||||
|
println!("HELP: consider disabling `download-rustc`");
|
||||||
|
println!("HELP: or fetch enough history to include one upstream commit");
|
||||||
|
crate::exit!(1);
|
||||||
}
|
}
|
||||||
println!("ERROR: could not find commit hash for downloading rustc");
|
};
|
||||||
println!("HELP: maybe your repository history is too shallow?");
|
|
||||||
println!("HELP: consider disabling `download-rustc`");
|
|
||||||
println!("HELP: or fetch enough history to include one upstream commit");
|
|
||||||
crate::exit!(1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if CiEnv::is_ci() && {
|
if CiEnv::is_ci() && {
|
||||||
let head_sha =
|
let head_sha =
|
||||||
|
Loading…
Reference in New Issue
Block a user