about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJakub Beránek <berykubik@gmail.com>2025-03-15 11:11:56 +0100
committerJakub Beránek <berykubik@gmail.com>2025-03-15 11:16:12 +0100
commite84531811160308fbdd0a8ec3e9b697bb17ccd02 (patch)
tree0d8b2ab85e5073a96c148977909baa1b0774fa85 /src
parentb4cccf01587ac672dee7a92df7e3e21728f5b7aa (diff)
downloadrust-e84531811160308fbdd0a8ec3e9b697bb17ccd02.tar.gz
rust-e84531811160308fbdd0a8ec3e9b697bb17ccd02.zip
Do not error out on missing parent metrics
Diffstat (limited to 'src')
-rw-r--r--src/ci/citool/src/main.rs23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/ci/citool/src/main.rs b/src/ci/citool/src/main.rs
index 01483a2633d..29f94e2be5d 100644
--- a/src/ci/citool/src/main.rs
+++ b/src/ci/citool/src/main.rs
@@ -150,11 +150,24 @@ fn postprocess_metrics(
         return Ok(());
     };
 
-    let parent_metrics =
-        download_job_metrics(&job_name, &parent).context("cannot download parent metrics")?;
-    let job_metrics =
-        HashMap::from([(job_name, JobMetrics { parent: Some(parent_metrics), current: metrics })]);
-    output_test_diffs(job_metrics);
+    // This command is executed also on PR builds, which might not have parent metrics
+    // available, because some PR jobs don't run on auto builds, and PR jobs do not upload metrics
+    // due to missing permissions.
+    // To avoid having to detect if this is a PR job, and to avoid having failed steps in PR jobs,
+    // we simply print an error if the parent metrics were not found, but otherwise exit
+    // successfully.
+    match download_job_metrics(&job_name, &parent).context("cannot download parent metrics") {
+        Ok(parent_metrics) => {
+            let job_metrics = HashMap::from([(
+                job_name,
+                JobMetrics { parent: Some(parent_metrics), current: metrics },
+            )]);
+            output_test_diffs(job_metrics);
+        }
+        Err(error) => {
+            eprintln!("Metrics for job `{job_name}` and commit `{parent}` not found: {error:?}");
+        }
+    }
 
     Ok(())
 }