fix(release): poll branch readiness before .version write #22

Merged
argoyle merged 1 commits from fix-release-version-race into main 2026-05-12 13:19:02 +00:00
Owner

Why

Release workflow intermittently failed at the .version write step with exit 22 and no diagnostic output. The CHANGELOG.md PUT creates the next-release branch via the new_branch parameter, then the .version PUT fires ~2s later — racing Gitea's branch indexing. Because the call used curl -sf (fail-silent), 404/409 responses produced exit 22 with no body, leaving logs unhelpful.

Changes

  • Move the existing branch-readiness poll to run right after the CHANGELOG.md commit, before .version is written.
  • Replace the silent .version write with a 5-attempt retry loop that logs HTTP code and body on failure (same pattern already used for PR creation).

Test plan

  • Trigger Release.yml on a repo with a pending changelog entry; confirm .version write succeeds first try and PR is created.
  • If a transient failure happens, log now shows HTTP code + body.
## Why Release workflow intermittently failed at the `.version` write step with `exit 22` and no diagnostic output. The CHANGELOG.md PUT creates the `next-release` branch via the `new_branch` parameter, then the `.version` PUT fires ~2s later — racing Gitea's branch indexing. Because the call used `curl -sf` (fail-silent), 404/409 responses produced exit 22 with no body, leaving logs unhelpful. ## Changes - Move the existing branch-readiness poll to run **right after** the CHANGELOG.md commit, before `.version` is written. - Replace the silent `.version` write with a 5-attempt retry loop that logs HTTP code and body on failure (same pattern already used for PR creation). ## Test plan - [ ] Trigger Release.yml on a repo with a pending changelog entry; confirm `.version` write succeeds first try and PR is created. - [ ] If a transient failure happens, log now shows HTTP code + body.
argoyle added 1 commit 2026-05-12 13:18:16 +00:00
The .version PUT fired immediately after CHANGELOG.md created the
next-release branch, racing Gitea's branch indexing. With curl -sf
(fail-silent) any 404/409 produced exit 22 with no body, leaving the
log without diagnostic output.

- Move the branch-readiness poll to run right after CHANGELOG.md commit,
  before .version is written.
- Replace silent .version write with a 5-attempt retry loop that logs
  HTTP code and body on failure, matching the PR creation block.
argoyle merged commit c39f11fda7 into main 2026-05-12 13:19:02 +00:00
argoyle deleted branch fix-release-version-race 2026-05-12 13:19:02 +00:00
Sign in to join this conversation.