argoyle c39f11fda7 fix(release): poll branch readiness before .version write (#22)
## 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.

Reviewed-on: #22
2026-05-12 13:19:00 +00:00

Shared Workflows

Reusable Gitea Actions workflows for Unbound Software repositories.

Available Workflows

Release.yml

Automated release workflow using git-cliff for changelog generation.

Usage:

name: Release

on:
  push:
    branches: [main]

jobs:
  release:
    uses: unboundsoftware/shared-workflows/.gitea/workflows/Release.yml@main

Inputs:

  • tag_only (boolean, default: false): Set to true to only create tags without full releases

Requirements:

This workflow reads the release token from /runner-secrets/release-token, which is automatically available on Unbound's Gitea runners. No repository secrets need to be configured.

How it works:

  1. On each push to the default branch, generates a changelog using git-cliff
  2. Creates or updates a next-release branch with the updated CHANGELOG.md and .version file
  3. Opens or updates a PR titled "chore(release): prepare for vX.Y.Z"
  4. When the .version file exists (after merging the release PR), creates a Gitea release with the changelog
S
Description
No description provided
Readme 102 KiB
Languages
Markdown 100%