Skip to content

ci(release): guard prerelease tags from clobbering :latest / Homebrew#76

Merged
0xMassi merged 1 commit into
mainfrom
ci/guard-prereleases
Jun 27, 2026
Merged

ci(release): guard prerelease tags from clobbering :latest / Homebrew#76
0xMassi merged 1 commit into
mainfrom
ci/guard-prereleases

Conversation

@0xMassi

@0xMassi 0xMassi commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Prep for cutting validation rc tags (e.g. to exercise the new musl build job from #75) without shipping an rc to stable users.

Problem

Any v* tag runs the full release pipeline. For a prerelease like v0.6.14-rc1 that meant:

  • a normal (non-prerelease) GitHub Release,
  • ghcr.io/0xmassi/webclaw:latest overwritten with the rc image,
  • the Homebrew formula repointed to the rc (so brew install webclaw gets it).

Fix

Guard all three on the SemVer prerelease hyphen (v1.2.3-rc1 contains -):

  • release: add --prerelease for hyphenated tags.
  • docker: still push :${tag} (so the rc image is testable) but only move :latest for stable tags.
  • homebrew: skip the job entirely for prereleases.

Stable tags (v0.6.14) are unaffected — verified the shell hyphen-detection both ways. Pure CI change; the build/test jobs are untouched.

…table

A v*-rc* tag triggered the same release pipeline as a stable tag, which
would publish a normal release, overwrite ghcr.io/0xmassi/webclaw:latest,
and repoint the Homebrew formula at the rc — shipping a prerelease to every
stable Docker/brew user. Guard all three on the SemVer prerelease hyphen:

- release: add --prerelease for hyphenated tags
- docker: still push :${tag} (testable rc image) but only move :latest for stable
- homebrew: skip entirely for prereleases

Lets us cut rc tags (e.g. to validate the new musl build job) without
touching stable users.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@0xMassi 0xMassi merged commit 472f059 into main Jun 27, 2026
4 checks passed
@0xMassi 0xMassi deleted the ci/guard-prereleases branch June 27, 2026 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant