Repository navigation
refactor(ra): fold update-issue, post-result and create-sync-pr into one finalize job - #486
Merged
hdamker merged 1 commit intoOct 23, 2026
Conversation
hdamker
merged commit Oct 23, 2026
0af5f60
into
camaraproject:release-automation-refactor
8 checks passed
7 of 9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What type of PR is this?
What this PR does / why we need it:
Three jobs of the Release Automation workflow become one
finalizejob:update-issue(shown assync-issue),post-resultandcreate-sync-pr.finalizeruns after the command jobs, also when one of them failed (always()). Its only condition is the newfinalizeoutput ofplan: true for a command or event that runs, false for rejections, configuration errors and the publish confirmation request. One Python entry point,release_automation/scripts/finalize.py, readstoJSON(needs)and runs, in this order:sync_pr.py, from refactor(ra): add sync_pr.py and the common-file sync to common_sync.py #485)sync_common(), from refactor(ra): add sync_pr.py and the common-file sync to common_sync.py #485), then the Release Issue sync and its comments (issue_created,state_not_planned,common_sync_pr_created,common_sync_failed)The conditions of the three former jobs and steps are now Python functions with tests (
test_finalize.py), as are "Resolve Sync Context", "Determine Result Template", "Resolve Reason" and "Build Result Context".Published Release Issue (closes #153):
IssueSyncManager.finalize_published_issue()replaces the inline JavaScript and the unusedclose_release_issue(). It writes the same STATE and ACTIONS text, including the post-publish warnings, swaps the state label torelease-state:published, and closes the issue only when the sync PR status iscreated. API errors are logged and never fail the job. As before, this step runs only after the result comment was posted.Also:
state_not_plannedis now posted. The former step compared the state tonot_planned, but the state value isnot-planned, so the comment never appearedsync-release-issuecomposite is removed; its Python isissue_sync.sync_for_workflow(), called byfinalizepost-bot-commentandfinalizerender through the sameBotResponder.render_comment()(base context plus delta,apis_jsontoapis)/sync-issuestaysinterim_processing, as beforefinalizejob instead of the job namedsync-issuefinalizewrites a short step summary: trigger, release, sync PR, common sync, Release Issue, result commentComments, labels and Release Issue sections are otherwise unchanged. The Release Issue sync now runs before the result comment; before, the two were separate jobs that ran side by side.
Workflow: 1,327 lines (from 2,353 at the slice start), 8 jobs (from 10), 6 tooling checkouts (from 7), 8
github-scriptblocks (from 11).Which issue(s) this PR fixes:
Fixes #153
Part of #476
Special notes for reviewers:
Targets
release-automation-refactor. The branch canary on ReleaseTest2 and a manual end-to-end run follow after merge: a stale common-file cache first, then create, review merge, draft, publish, sync PR and issue close.Changelog input
Additional documentation