diff options
| author | Jakub Beránek <berykubik@gmail.com> | 2025-04-16 13:24:01 +0200 |
|---|---|---|
| committer | Jakub Beránek <berykubik@gmail.com> | 2025-04-17 16:18:01 +0200 |
| commit | d14df2652df492fe0f19c5e0ae5041b39b5a4d20 (patch) | |
| tree | 4640bc69c023b8d05609b482c3d308d4918da7b5 | |
| parent | 94015d3cd4b48d098abd0f3e44af97dab2b713b4 (diff) | |
| download | rust-d14df2652df492fe0f19c5e0ae5041b39b5a4d20.tar.gz rust-d14df2652df492fe0f19c5e0ae5041b39b5a4d20.zip | |
Make `parent` in `download_auto_job_metrics` optional
| -rw-r--r-- | src/ci/citool/src/main.rs | 2 | ||||
| -rw-r--r-- | src/ci/citool/src/metrics.rs | 23 |
2 files changed, 13 insertions, 12 deletions
diff --git a/src/ci/citool/src/main.rs b/src/ci/citool/src/main.rs index a1956da352f..0fee862f572 100644 --- a/src/ci/citool/src/main.rs +++ b/src/ci/citool/src/main.rs @@ -180,7 +180,7 @@ fn postprocess_metrics( } fn post_merge_report(db: JobDatabase, current: String, parent: String) -> anyhow::Result<()> { - let metrics = download_auto_job_metrics(&db, &parent, ¤t)?; + let metrics = download_auto_job_metrics(&db, Some(&parent), ¤t)?; println!("\nComparing {parent} (parent) -> {current} (this PR)\n"); diff --git a/src/ci/citool/src/metrics.rs b/src/ci/citool/src/metrics.rs index a816fb3c4f1..3d8b1ad84cf 100644 --- a/src/ci/citool/src/metrics.rs +++ b/src/ci/citool/src/metrics.rs @@ -46,24 +46,25 @@ pub struct JobMetrics { /// `parent` and `current` should be commit SHAs. pub fn download_auto_job_metrics( job_db: &JobDatabase, - parent: &str, + parent: Option<&str>, current: &str, ) -> anyhow::Result<HashMap<JobName, JobMetrics>> { let mut jobs = HashMap::default(); for job in &job_db.auto_jobs { eprintln!("Downloading metrics of job {}", job.name); - let metrics_parent = match download_job_metrics(&job.name, parent) { - Ok(metrics) => Some(metrics), - Err(error) => { - eprintln!( - r#"Did not find metrics for job `{}` at `{parent}`: {error:?}. + let metrics_parent = + parent.and_then(|parent| match download_job_metrics(&job.name, parent) { + Ok(metrics) => Some(metrics), + Err(error) => { + eprintln!( + r#"Did not find metrics for job `{}` at `{parent}`: {error:?}. Maybe it was newly added?"#, - job.name - ); - None - } - }; + job.name + ); + None + } + }); let metrics_current = download_job_metrics(&job.name, current)?; jobs.insert( job.name.clone(), |
