ci(release): open tap and bucket pull requests instead of pushing to main #19

Merged
james.maes merged 1 commits from ci/packaging-pull-requests into main 2026-11-08 23:29:24 +00:00
Owner

Owner decision 2026-11-08: CI opens pull requests in the tap and the bucket; a human merges.

  • scripts/publish-packaging.sh (called by release.yaml publish): for a final version, push branch release/qqq-<version> to QRun-IO/homebrew-tap (Formula/qqq.rb) and QRun-IO/scoop-bucket (bucket/qqq.json) with PACKAGES_TOKEN, open a pull request qqq <version> into the default branch (re-runs force-update the CI-owned branch and find the open PR).
  • Prerelease, empty token, refused push, or refused PR: attach qqq.rb / qqq.json to the release as today. Nothing here fails the release (a failed attach is a warning).
  • DRY_RUN=1 VERSION=<v> SUMS_FILE=<SHA256SUMS>: clones and commits locally, pushes/opens/attaches nothing.
  • Runbook updated.

Verified (no release cut): shellcheck clean; dry run against the real public tap/bucket with VERSION=1.0.1 showed the formula/manifest commits and "would push release/qqq-1.0.1 ... open pull request "qqq 1.0.1" into main" for both; dry run with a prerelease version took the attach path; a non-dry run with no PACKAGES_TOKEN fell back to attach and exited 0.

Owner action before the first final release: grant qqq-package-publisher write on QRun-IO/homebrew-tap and QRun-IO/scoop-bucket, and protect their main branches (so CI can only propose).

🤖 Generated with Claude Code

Owner decision 2026-11-08: CI opens pull requests in the tap and the bucket; a human merges. - `scripts/publish-packaging.sh` (called by `release.yaml` publish): for a **final** version, push branch `release/qqq-<version>` to `QRun-IO/homebrew-tap` (`Formula/qqq.rb`) and `QRun-IO/scoop-bucket` (`bucket/qqq.json`) with `PACKAGES_TOKEN`, open a pull request `qqq <version>` into the default branch (re-runs force-update the CI-owned branch and find the open PR). - Prerelease, empty token, refused push, or refused PR: attach `qqq.rb` / `qqq.json` to the release as today. Nothing here fails the release (a failed attach is a warning). - `DRY_RUN=1 VERSION=<v> SUMS_FILE=<SHA256SUMS>`: clones and commits locally, pushes/opens/attaches nothing. - Runbook updated. Verified (no release cut): shellcheck clean; dry run against the real public tap/bucket with `VERSION=1.0.1` showed the formula/manifest commits and "would push release/qqq-1.0.1 ... open pull request \"qqq 1.0.1\" into main" for both; dry run with a prerelease version took the attach path; a non-dry run with no `PACKAGES_TOKEN` fell back to attach and exited 0. **Owner action before the first final release:** grant `qqq-package-publisher` write on `QRun-IO/homebrew-tap` and `QRun-IO/scoop-bucket`, and protect their `main` branches (so CI can only propose). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
james.maes added 1 commit 2026-11-08 23:23:05 +00:00
ci(release): open tap and bucket pull requests instead of pushing to main
node / node (push) Successful in 1m5s
build / node (push) Successful in 1m5s
bf9c093bdd
For a final version the publish job now pushes branch release/qqq-<version>
to QRun-IO/homebrew-tap and QRun-IO/scoop-bucket with PACKAGES_TOKEN and
opens a pull request "qqq <version>" in each; a human merges. A prerelease,
or a refused push or pull request, attaches qqq.rb / qqq.json to the release
as before, and never fails the release. The logic moves to
scripts/publish-packaging.sh, with a DRY_RUN=1 path that clones and commits
locally but writes nothing remote.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
james.maes merged commit b250794a7c into main 2026-11-08 23:29:24 +00:00
james.maes deleted branch ci/packaging-pull-requests 2026-11-08 23:29:24 +00:00
Sign in to join this conversation.