From ac062fd2238552eaddfd429e71bff14c066c5ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 11 Mar 2026 17:20:41 +0100 Subject: [PATCH] Allow auto jobs to be non-blocking --- src/ci/citool/src/jobs.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ci/citool/src/jobs.rs b/src/ci/citool/src/jobs.rs index 245ab31fa644..cc93761e9604 100644 --- a/src/ci/citool/src/jobs.rs +++ b/src/ci/citool/src/jobs.rs @@ -200,12 +200,14 @@ fn equivalent_modulo_carve_out(pr_job: &Job, auto_job: &Job) -> anyhow::Result<( equivalent_modulo_carve_out(pr_job, auto_job)?; } - // Auto CI jobs must all "fail-fast" to avoid wasting Auto CI resources. For instance, `tidy`. + // Auto CI should "fail-fast" to avoid wasting Auto CI resources. + // However, some experimental auto jobs can be made optional, for example if we are unsure about + // their flakiness. Those have to be prefixed with `optional-`. for auto_job in &db.auto_jobs { - if auto_job.continue_on_error == Some(true) { + if auto_job.continue_on_error == Some(true) && !auto_job.name.starts_with("optional-") { return Err(anyhow!( - "Auto job `{}` cannot have `continue_on_error: true`", - auto_job.name + "Auto job `{job}` cannot have `continue_on_error: true`. If the job should be optional, name it `optional-{job}`.", + job = auto_job.name )); } }