1
Fork 0

Make parent in download_auto_job_metrics optional

This commit is contained in:
Jakub Beránek 2025-04-16 13:24:01 +02:00
parent 94015d3cd4
commit d14df2652d
No known key found for this signature in database
GPG key ID: 909CD0D26483516B
2 changed files with 13 additions and 12 deletions

View file

@ -180,7 +180,7 @@ fn postprocess_metrics(
} }
fn post_merge_report(db: JobDatabase, current: String, parent: String) -> anyhow::Result<()> { fn post_merge_report(db: JobDatabase, current: String, parent: String) -> anyhow::Result<()> {
let metrics = download_auto_job_metrics(&db, &parent, &current)?; let metrics = download_auto_job_metrics(&db, Some(&parent), &current)?;
println!("\nComparing {parent} (parent) -> {current} (this PR)\n"); println!("\nComparing {parent} (parent) -> {current} (this PR)\n");

View file

@ -46,24 +46,25 @@ pub struct JobMetrics {
/// `parent` and `current` should be commit SHAs. /// `parent` and `current` should be commit SHAs.
pub fn download_auto_job_metrics( pub fn download_auto_job_metrics(
job_db: &JobDatabase, job_db: &JobDatabase,
parent: &str, parent: Option<&str>,
current: &str, current: &str,
) -> anyhow::Result<HashMap<JobName, JobMetrics>> { ) -> anyhow::Result<HashMap<JobName, JobMetrics>> {
let mut jobs = HashMap::default(); let mut jobs = HashMap::default();
for job in &job_db.auto_jobs { for job in &job_db.auto_jobs {
eprintln!("Downloading metrics of job {}", job.name); eprintln!("Downloading metrics of job {}", job.name);
let metrics_parent = match download_job_metrics(&job.name, parent) { let metrics_parent =
Ok(metrics) => Some(metrics), parent.and_then(|parent| match download_job_metrics(&job.name, parent) {
Err(error) => { Ok(metrics) => Some(metrics),
eprintln!( Err(error) => {
r#"Did not find metrics for job `{}` at `{parent}`: {error:?}. eprintln!(
r#"Did not find metrics for job `{}` at `{parent}`: {error:?}.
Maybe it was newly added?"#, Maybe it was newly added?"#,
job.name job.name
); );
None None
} }
}; });
let metrics_current = download_job_metrics(&job.name, current)?; let metrics_current = download_job_metrics(&job.name, current)?;
jobs.insert( jobs.insert(
job.name.clone(), job.name.clone(),