From e185845c13488e064af98bd471ebed20b256ebc3 Mon Sep 17 00:00:00 2001 From: webwarrior-ws Date: Wed, 30 Sep 2026 11:18:44 +0200 Subject: [PATCH] scripts/checkCommits1by1.fsx: fix failure When the response to request for push runs returns result with empty workflowRuns property. This happens sometimes and would cause CI failure. Instead, wait and retry the request like it is done when run status is incomplete. --- scripts/checkCommits1by1.fsx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/scripts/checkCommits1by1.fsx b/scripts/checkCommits1by1.fsx index 7f3f0964f..939459646 100755 --- a/scripts/checkCommits1by1.fsx +++ b/scripts/checkCommits1by1.fsx @@ -1802,11 +1802,6 @@ let rec CheckCiStatus |> Seq.sortByDescending(fun run -> run.CreatedAt) |> Seq.tryHead - let status, conclusion = - match latestRun with - | Some run -> run.Status, run.Conclusion - | None -> failwith "No push workflow run found" - // see https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks#check-statuses-and-conclusions let incompleteRunStatuses = [ @@ -1818,7 +1813,14 @@ let rec CheckCiStatus "pending" ] - if List.contains status incompleteRunStatuses then + let incompleteInformation, hasFailure = + match latestRun with + | Some run -> + List.contains run.Status incompleteRunStatuses, + run.Status = "completed" && run.Conclusion = "failure" + | None -> true, false + + if incompleteInformation then if timeRemaining < timeBetweenCiStatusCheckRetries then return () else @@ -1829,7 +1831,7 @@ let rec CheckCiStatus commitHash commitMessage (timeRemaining - timeBetweenCiStatusCheckRetries) - elif status = "completed" && conclusion = "failure" then + elif hasFailure then Console.WriteLine() Console.Error.WriteLine