release: build with GoReleaser and publish a Homebrew tap - #3
Merged
Merged
Conversation
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.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-taprepository. It is generated from the release's ownchecksums.txtbyscripts/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-proxyinstalls 0.1.1,cli-proxy -versionprints the right thing, andbrew test cli-proxypasses.GoReleaser
make releasein CI is replaced by GoReleaser:windows/arm64which the old build missed;checksums.txt;verifyruns beforepublish: 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 releasetarget is kept so a release can still be reproduced locally without installing GoReleaser.