From 6c3ee8a3ea66bdda7b2174c5559eb64edcbb8cb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Tue, 29 Jul 2025 16:08:46 +0200 Subject: [PATCH] Include commit SHA in test failed message --- src/bors/comment.rs | 11 +++++------ src/bors/handlers/trybuild.rs | 4 ++-- src/bors/handlers/workflow.rs | 14 +++++++++----- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/bors/comment.rs b/src/bors/comment.rs index 04c42539..5c5d578f 100644 --- a/src/bors/comment.rs +++ b/src/bors/comment.rs @@ -5,7 +5,6 @@ use std::time::Duration; use crate::bors::FailedWorkflowRun; use crate::bors::command::CommandPrefix; -use crate::database::BuildModel; use crate::github::GithubRepoName; use crate::utils::text::pluralize; use crate::{ @@ -49,7 +48,7 @@ impl Comment { pub fn try_build_succeeded_comment( workflows: &[WorkflowModel], commit_sha: CommitSha, - build: &BuildModel, + parent_sha: CommitSha, ) -> Comment { use std::fmt::Write; @@ -65,8 +64,7 @@ pub fn try_build_succeeded_comment( } writeln!( text, - "Build commit: {commit_sha} (`{commit_sha}`, parent: `{}`)", - build.parent + "Build commit: {commit_sha} (`{commit_sha}`, parent: `{parent_sha}`)", ) .unwrap(); @@ -103,16 +101,17 @@ pub fn try_build_cancelled_comment(workflow_urls: impl Iterator) pub fn build_failed_comment( repo: &GithubRepoName, + commit_sha: CommitSha, failed_workflows: Vec, ) -> Comment { use std::fmt::Write; - let mut msg = ":broken_heart: Test failed".to_string(); + let mut msg = format!(":broken_heart: Test for {commit_sha} failed"); let mut workflow_links = failed_workflows .iter() .map(|w| format!("[{}]({})", w.workflow_run.name, w.workflow_run.url)); if !failed_workflows.is_empty() { - write!(msg, " ({})", workflow_links.join(", ")).unwrap(); + write!(msg, ": {}", workflow_links.join(", ")).unwrap(); let mut failed_jobs: Vec = failed_workflows .into_iter() diff --git a/src/bors/handlers/trybuild.rs b/src/bors/handlers/trybuild.rs index ec6342eb..e2ced533 100644 --- a/src/bors/handlers/trybuild.rs +++ b/src/bors/handlers/trybuild.rs @@ -406,7 +406,7 @@ mod tests { tester.workflow_full_failure(tester.try_branch()).await?; insta::assert_snapshot!( tester.get_comment().await?, - @":broken_heart: Test failed ([Workflow1](https://github.com/rust-lang/borstest/actions/runs/1))" + @":broken_heart: Test for merge-0-pr-1 failed: [Workflow1](https://github.com/rust-lang/borstest/actions/runs/1)" ); Ok(()) }) @@ -438,7 +438,7 @@ mod tests { insta::assert_snapshot!( tester.get_comment().await?, @r" - :broken_heart: Test failed ([Workflow1](https://github.com/rust-lang/borstest/actions/runs/1)). Failed jobs: + :broken_heart: Test for merge-0-pr-1 failed: [Workflow1](https://github.com/rust-lang/borstest/actions/runs/1). Failed jobs: - `Job 42` ([web logs](https://github.com/job-logs/42), [extended logs](https://triage.rust-lang.org/gha-logs/rust-lang/borstest/42)) - `Job 50` ([web logs](https://github.com/job-logs/50), [extended logs](https://triage.rust-lang.org/gha-logs/rust-lang/borstest/50)) diff --git a/src/bors/handlers/workflow.rs b/src/bors/handlers/workflow.rs index a0e67f59..70cf62d2 100644 --- a/src/bors/handlers/workflow.rs +++ b/src/bors/handlers/workflow.rs @@ -8,8 +8,8 @@ use crate::bors::merge_queue::AUTO_BRANCH_NAME; use crate::bors::merge_queue::MergeQueueSender; use crate::bors::{FailedWorkflowRun, RepositoryState, WorkflowRun}; use crate::database::{BuildModel, BuildStatus, PullRequestModel, WorkflowModel, WorkflowStatus}; -use crate::github::LabelTrigger; use crate::github::api::client::GithubRepositoryClient; +use crate::github::{CommitSha, LabelTrigger}; use octocrab::models::CheckRunId; use octocrab::models::workflows::{Conclusion, Job, Status}; use octocrab::params::checks::CheckRunConclusion; @@ -246,7 +246,7 @@ async fn maybe_complete_build( Some(try_build_succeeded_comment( &db_workflow_runs, payload.commit_sha, - &build, + CommitSha(build.parent.clone()), )) } else { // Merge queue will post the build succeeded comment @@ -274,7 +274,11 @@ async fn maybe_complete_build( }) } - Some(build_failed_comment(repo.repository(), workflow_runs)) + Some(build_failed_comment( + repo.repository(), + payload.commit_sha, + workflow_runs, + )) }; if let Some(comment) = comment_opt { @@ -610,7 +614,7 @@ mod tests { tester.workflow_event(WorkflowEvent::failure(w2)).await?; insta::assert_snapshot!( tester.get_comment().await?, - @":broken_heart: Test failed ([Workflow1](https://github.com/rust-lang/borstest/actions/runs/1), [Workflow1](https://github.com/rust-lang/borstest/actions/runs/2))" + @":broken_heart: Test for merge-0-pr-1 failed: [Workflow1](https://github.com/rust-lang/borstest/actions/runs/1), [Workflow1](https://github.com/rust-lang/borstest/actions/runs/2)" ); Ok(()) }) @@ -750,7 +754,7 @@ auto_build_failed = ["+foo", "+bar", "-baz"] }).await?; insta::assert_snapshot!( tester.get_comment().await?, - @":broken_heart: Test failed ([Workflow1](https://github.com/rust-lang/borstest/actions/runs/1))" + @":broken_heart: Test for merge-0-pr-1 failed: [Workflow1](https://github.com/rust-lang/borstest/actions/runs/1)" ); Ok(())