Skip to content

release: build with GoReleaser and publish a Homebrew tap - #3

Merged
sadgoodman merged 1 commit into
masterfrom
feat/homebrew-tap
Sep 18, 2026
Merged

sadgoodman merged 1 commit into
masterfrom
feat/homebrew-tap

Conversation

@sadgoodman

Copy link
Copy Markdown
Owner

Adds the pieces needed for brew install sadgoodman/tap/cli-proxy, and moves the release pipeline to GoReleaser.

Homebrew

The formula lives in the new sadgoodman/homebrew-tap repository. It is generated from the release's own checksums.txt by scripts/update_formula.py, and a workflow there regenerates it hourly (or on demand from the Actions tab).

Nothing is shared between the two repositories — no personal access token, nothing that expires. The trade-off is that a fresh release can take up to an hour to reach the tap; triggering Update formulae makes it immediate.

Verified locally: brew install sadgoodman/tap/cli-proxy installs 0.1.1, cli-proxy -version prints the right thing, and brew test cli-proxy passes.

GoReleaser

make release in CI is replaced by GoReleaser:

  • six targets, including windows/arm64 which the old build missed;
  • one archive per platform with the same names the README documents, plus checksums.txt;
  • a changelog built from the commits and a release body carrying the platform table;
  • verify runs before publish: tag against version, the test suite, goreleaser check, a snapshot build, a smoke run of the built linux binary and a checksum pass.

The make release target is kept so a release can still be reproduced locally without installing GoReleaser.

Replaces the hand-rolled archive step with GoReleaser, which brings the
conventional layout: six targets (windows/arm64 is new), one archive per
platform, a shared checksums.txt, a changelog built from the commits and a
release body with the download table. The release workflow now verifies before
it publishes: version against tag, the test suite, `goreleaser check`, a
snapshot build, a smoke run of the built linux binary and a checksum pass.

The same change makes `brew install sadgoodman/tap/cli-proxy` work. The formula
lives in the new sadgoodman/homebrew-tap repository, generated from the
release's own checksums.txt by a script that runs there on a schedule, so the
tap stays current without a personal access token or anything else that can
expire.

README and both guides now lead with the brew command.
@sadgoodman
sadgoodman merged commit 22df661 into master Sep 18, 2026
7 checks passed
@sadgoodman
sadgoodman deleted the feat/homebrew-tap branch September 18, 2026 23:20
@sadgoodman sadgoodman mentioned this pull request Sep 18, 2026
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