Fix workflow completion watcher in release helper

This commit is contained in:
Jakub Kuczys 2023-05-14 22:15:47 +02:00
parent 1ec95beb56
commit 69cf604e0e
No known key found for this signature in database
GPG Key ID: 9F02686F15FCBCD3

View File

@ -284,6 +284,15 @@ def set_version(version: str) -> None:
set_git_config_value("release-version", version) set_git_config_value("release-version", version)
def get_previous_workflow_run_number() -> int:
previous_workflow_run_number = int(get_git_config_value("previous-workflow-run-number"))
return previous_workflow_run_number
def set_previous_workflow_run_number(run_number: int) -> None:
set_git_config_value("previous-workflow-run-number", str(run_number))
def get_release_stage() -> ReleaseStage: def get_release_stage() -> ReleaseStage:
return ReleaseStage.from_str(get_git_config_value("release-stage") or "WELCOME") return ReleaseStage.from_str(get_git_config_value("release-stage") or "WELCOME")
@ -640,6 +649,16 @@ def run_prepare_release_workflow(release_type: ReleaseType, version: str) -> Non
rich.print(":white_check_mark: Already done!") rich.print(":white_check_mark: Already done!")
base_branch = get_base_branch() base_branch = get_base_branch()
run_list_command = (
"gh",
"run",
"list",
"--limit=1",
"--json=databaseId,number",
"--workflow=prepare_release.yml",
"--branch",
base_branch,
)
if get_release_stage() < ReleaseStage.PREPARE_RELEASE_SPAWNED: if get_release_stage() < ReleaseStage.PREPARE_RELEASE_SPAWNED:
rich.print( rich.print(
Markdown( Markdown(
@ -663,25 +682,16 @@ def run_prepare_release_workflow(release_type: ReleaseType, version: str) -> Non
"Run this command again once you're ready to run this workflow." "Run this command again once you're ready to run this workflow."
) )
run_list_command = ( set_previous_workflow_run_number(
"gh", json.loads(subprocess.check_output(run_list_command, text=True))[0]["number"]
"run",
"list",
"--limit=1",
"--json=databaseId,number",
"--workflow=prepare_release.yml",
"--branch",
base_branch,
) )
previous_run = json.loads(subprocess.check_output(run_list_command, text=True))[0][
"number"
]
subprocess.check_call( subprocess.check_call(
("gh", "workflow", "run", "prepare_release.yml", "--ref", base_branch) ("gh", "workflow", "run", "prepare_release.yml", "--ref", base_branch)
) )
set_release_stage(ReleaseStage.PREPARE_RELEASE_SPAWNED) set_release_stage(ReleaseStage.PREPARE_RELEASE_SPAWNED)
if get_release_stage() < ReleaseStage.PREPARE_RELEASE_RAN: if get_release_stage() < ReleaseStage.PREPARE_RELEASE_RAN:
rich.print("Waiting for GitHub Actions workflow to show...") previous_run = get_previous_workflow_run_number()
print_markdown("Waiting for GitHub Actions workflow to show...")
time.sleep(2) time.sleep(2)
while True: while True:
data = json.loads(subprocess.check_output(run_list_command, text=True))[0] data = json.loads(subprocess.check_output(run_list_command, text=True))[0]
@ -690,7 +700,7 @@ def run_prepare_release_workflow(release_type: ReleaseType, version: str) -> Non
break break
time.sleep(5) time.sleep(5)
subprocess.check_call(("gh", "run", "watch", run_id)) subprocess.check_call(("gh", "run", "watch", str(run_id)))
rich.print("The automated pull requests have been created.\n") rich.print("The automated pull requests have been created.\n")
set_release_stage(ReleaseStage.PREPARE_RELEASE_RAN) set_release_stage(ReleaseStage.PREPARE_RELEASE_RAN)
rich.print(Markdown("# Step 6: Merge the automatically created PRs")) rich.print(Markdown("# Step 6: Merge the automatically created PRs"))