Attempt to fix wrong workflow_run data for rerun

This commit is contained in:
Mikhail f. Shiryaev 2022-07-26 23:10:58 +02:00
parent 061e61919a
commit 0db9dda5f3
No known key found for this signature in database
GPG Key ID: 4B02ED204C7D93F4

View File

@ -402,10 +402,27 @@ def main(event):
workflow_description = get_workflow_description_from_event(event_data)
print("Got workflow description", workflow_description)
if (
workflow_description.action == "completed"
and workflow_description.conclusion == "failure"
):
if workflow_description.action == "completed":
attempt = 0
# Nice and reliable GH API sends from time to time such events, e.g:
# action='completed', conclusion=None, status='in_progress',
# So let's try receiving a real workflow data
while workflow_description.conclusion is None and attempt < MAX_RETRY:
progressive_sleep = 3 * sum(i + 1 for i in range(attempt))
time.sleep(progressive_sleep)
event_data["workflow_run"] = _exec_get_with_retry(
workflow_description.api_url
)
workflow_description = get_workflow_description_from_event(event_data)
attempt += 1
if workflow_description.conclusion != "failure":
print(
"Workflow finished with status "
f"{workflow_description.conclusion}, exiting"
)
return
print(
"Workflow",
workflow_description.url,