Do not deny warnings for fast try builds

This commit is contained in:
Jakub Beránek 2025-05-08 10:19:30 +02:00
parent 34495f5895
commit 082777e088
No known key found for this signature in database
GPG key ID: 909CD0D26483516B
3 changed files with 27 additions and 10 deletions

View file

@ -26,6 +26,7 @@ pub struct Environment {
use_bolt: bool,
shared_llvm: bool,
run_tests: bool,
fast_try_build: bool,
}
impl Environment {
@ -106,6 +107,10 @@ impl Environment {
pub fn run_tests(&self) -> bool {
self.run_tests
}
pub fn is_fast_try_build(&self) -> bool {
self.fast_try_build
}
}
/// What is the extension of binary executables on this platform?

View file

@ -113,13 +113,16 @@ impl Bootstrap {
"library/std",
])
.env("RUST_BACKTRACE", "full");
let cmd = add_shared_x_flags(env, cmd);
Self { cmd, metrics_path }
}
pub fn dist(env: &Environment, dist_args: &[String]) -> Self {
let metrics_path = env.build_root().join("build").join("metrics.json");
let cmd = cmd(&dist_args.iter().map(|arg| arg.as_str()).collect::<Vec<_>>())
.env("RUST_BACKTRACE", "full");
let args = dist_args.iter().map(|arg| arg.as_str()).collect::<Vec<_>>();
let cmd = cmd(&args).env("RUST_BACKTRACE", "full");
let cmd = add_shared_x_flags(env, cmd);
Self { cmd, metrics_path }
}
@ -184,3 +187,7 @@ impl Bootstrap {
Ok(())
}
}
fn add_shared_x_flags(env: &Environment, cmd: CmdBuilder) -> CmdBuilder {
if env.is_fast_try_build() { cmd.arg("--set").arg("rust.deny-warnings=false") } else { cmd }
}

View file

@ -95,7 +95,7 @@ enum EnvironmentCmd {
#[arg(long)]
benchmark_cargo_config: Vec<String>,
/// Perform tests after final build if it's not a try build
/// Perform tests after final build if it's not a fast try build
#[arg(long)]
run_tests: bool,
},
@ -111,11 +111,14 @@ enum EnvironmentCmd {
},
}
fn is_try_build() -> bool {
/// For a fast try build, we want to only build the bare minimum of components to get a
/// working toolchain, and not run any tests.
fn is_fast_try_build() -> bool {
std::env::var("DIST_TRY_BUILD").unwrap_or_else(|_| "0".to_string()) != "0"
}
fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)> {
let is_fast_try_build = is_fast_try_build();
let (env, args) = match args.env {
EnvironmentCmd::Local {
target_triple,
@ -144,6 +147,7 @@ fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)>
.skipped_tests(skipped_tests)
.benchmark_cargo_config(benchmark_cargo_config)
.run_tests(run_tests)
.fast_try_build(is_fast_try_build)
.build()?;
(env, shared.build_args)
@ -167,6 +171,7 @@ fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)>
.use_bolt(!is_aarch64)
.skipped_tests(vec![])
.run_tests(true)
.fast_try_build(is_fast_try_build)
.build()?;
(env, shared.build_args)
@ -187,6 +192,7 @@ fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)>
.use_bolt(false)
.skipped_tests(vec![])
.run_tests(true)
.fast_try_build(is_fast_try_build)
.build()?;
(env, shared.build_args)
@ -350,9 +356,8 @@ fn execute_pipeline(
// After dist has finished, run a subset of the test suite on the optimized artifacts to discover
// possible regressions.
// The tests are not executed for try builds, which can be in various broken states, so we don't
// want to gatekeep them with tests.
if !is_try_build() && env.run_tests() {
// The tests are not executed for fast try builds, which can be broken and might not pass them.
if !is_fast_try_build() && env.run_tests() {
timer.section("Run tests", |_| run_tests(env))?;
}
@ -396,9 +401,9 @@ fn main() -> anyhow::Result<()> {
let (env, mut build_args) = create_environment(args).context("Cannot create environment")?;
// Skip components that are not needed for try builds to speed them up
if is_try_build() {
log::info!("Skipping building of unimportant components for a try build");
// Skip components that are not needed for fast try builds to speed them up
if is_fast_try_build() {
log::info!("Skipping building of unimportant components for a fast try build");
for target in [
"rust-docs",
"rustc-docs",