Build/Test Tools: Prevent inaccurate “fixed” notifications in Slack.

When searching for previous workflow runs by branch, GitHub currently includes matches within forks.

If a contributor opens a pull request from their fork with a `head_ref` matching a Core branch that triggers a workflow on `push` event, the outcomes of the workflows associated with that pull request are currently used to determine if the previous workflow run had failed.

The result is a false “fixed” notifications when a commit immediately follows a failed workflow run from the pull request.

This adds a check to skip any workflow runs not triggered by a `push` event to prevent these inaccurate notifications.

Props SergeyBiryukov.
See #55652.

git-svn-id: https://develop.svn.wordpress.org/trunk@53466 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Jonathan Desrosiers 2022-06-05 09:29:53 +00:00
parent 80ca807a96
commit 47e7c8e01a

View File

@ -114,6 +114,11 @@ jobs:
// Find the workflow run for the commit that immediately preceded this one.
for ( let i = 0; i < previous_runs.data.workflow_runs.length; i++ ) {
// Protects against false notifications when contributors use similar head_ref names.
if ( previous_runs.data.workflow_runs[ i ].event !== "push" ) {
continue;
}
if ( previous_runs.data.workflow_runs[ i ].run_number == workflow_run.data.run_number ) {
return previous_runs.data.workflow_runs[ i + 1 ].conclusion;
}