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.
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 main2026-05-12 13:19:02 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
Release workflow intermittently failed at the
.versionwrite step withexit 22and no diagnostic output. The CHANGELOG.md PUT creates thenext-releasebranch via thenew_branchparameter, then the.versionPUT fires ~2s later — racing Gitea's branch indexing. Because the call usedcurl -sf(fail-silent), 404/409 responses produced exit 22 with no body, leaving logs unhelpful.Changes
.versionis written..versionwrite with a 5-attempt retry loop that logs HTTP code and body on failure (same pattern already used for PR creation).Test plan
.versionwrite succeeds first try and PR is created.