feat: reusable qbit release-candidate workflow #1

Merged
KofTwentyTwo merged 3 commits from feature/qbit-release-rc into main 2026-10-13 19:27:10 +00:00
KofTwentyTwo commented 2026-10-13 19:20:20 +00:00 (Migrated from github.com)

Summary

This is a reusable workflow (.github/workflows/qbit-release-rc.yml, workflow_call) that cuts a qbit's next RC through its existing release flow:

  1. Reads develop's <revision>X.Y.Z-SNAPSHOT</revision>.
  2. Picks release/X.Y.Z, else release/X.Y. If neither exists, it creates release/X.Y from develop.
  3. Merges develop into that branch with the GitHub merges API, so GitHub signs the merge commit. "Already up to date" is a no-op warning; a conflict fails with instructions.
  4. The release/* push runs CircleCI publish_release_candidate (orb RC bump, Maven Central, tag).

It never publishes, tags or touches hotfix/* itself. It has a dry_run input. The dry run was checked locally against qbit-cdn (→ release/0.1.0), qbit-assistant and qbit-alerts (→ release/0.1).

Each qbit calls it from .github/workflows/release-rc.yml, on workflow_dispatch or when a develop PR labelled release:rc is merged. That standard goes into QRun-IO/qqq docs/QRUN-QBIT-REPO-STANDARD.md (C6) and is rolled out to every qbit.

🤖 Generated with Claude Code

## Summary This is a reusable workflow (`.github/workflows/qbit-release-rc.yml`, `workflow_call`) that cuts a qbit's next RC through its existing release flow: 1. Reads develop's `<revision>X.Y.Z-SNAPSHOT</revision>`. 2. Picks `release/X.Y.Z`, else `release/X.Y`. If neither exists, it creates `release/X.Y` from develop. 3. Merges develop into that branch with the GitHub merges API, so GitHub signs the merge commit. "Already up to date" is a no-op warning; a conflict fails with instructions. 4. The `release/*` push runs CircleCI `publish_release_candidate` (orb RC bump, Maven Central, tag). It never publishes, tags or touches `hotfix/*` itself. It has a `dry_run` input. The dry run was checked locally against qbit-cdn (→ `release/0.1.0`), qbit-assistant and qbit-alerts (→ `release/0.1`). Each qbit calls it from `.github/workflows/release-rc.yml`, on `workflow_dispatch` or when a develop PR labelled `release:rc` is merged. That standard goes into QRun-IO/qqq `docs/QRUN-QBIT-REPO-STANDARD.md` (C6) and is rolled out to every qbit. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.