This repo publishes releases via GitHub Actions + GoReleaser on semver tags (v*).
- These repositories need write access for releasing:
grobmeier/humblebee(this repo)grobmeier/homebrew-tap(tap)grobmeier/scoop-bucket(Scoop bucket)
- Add GitHub Actions secrets in
grobmeier/humblebee:
TAP_GITHUB_TOKEN: GitHub PAT with write access togrobmeier/homebrew-tapSCOOP_GITHUB_TOKEN: GitHub PAT with write access togrobmeier/scoop-bucket
Notes:
- The workflow uses
secrets.GITHUB_TOKENfor creating the GitHub Release. - The PATs are only for pushing formula/manifest commits to the other repos.
- Ensure the release workflow + GoReleaser config are on
main:
.github/workflows/release.yml.goreleaser.yaml
- (Optional) Validate the GoReleaser config:
goreleaser check- Update
mainand ensure it’s green locally:
git checkout main
git pull
go test ./...- Choose the version:
- First release example:
v0.1.0
- Create an annotated tag:
git tag -a v0.1.0 -m "v0.1.0"- Push the tag:
git push origin v0.1.0- Watch GitHub Actions:
- In
grobmeier/humblebee→ Actions →release - The job runs GoReleaser and will:
- create a GitHub Release with artifacts +
checksums.txt - commit/update the Homebrew formula in
grobmeier/homebrew-tap - commit/update the Scoop manifest in
grobmeier/scoop-bucket
- create a GitHub Release with artifacts +
- Verify the release outputs:
- GitHub Release contains:
humblebee_<version>_windows_amd64.zip(and other OS/arch archives)checksums.txt
- Homebrew: check the formula commit landed in
grobmeier/homebrew-tap - Scoop: check the manifest commit landed in
grobmeier/scoop-bucket
Requires GoReleaser installed:
goreleaser release --snapshot --cleanThis builds artifacts locally without publishing.
-
Homebrew/Scoop publishing fails: re-check PAT permissions and that the secret names match
TAP_GITHUB_TOKENSCOOP_GITHUB_TOKEN
-
Wrong artifacts format on Windows: ensure
.goreleaser.yamlhas aformat_overridesentry forwindows -> zip -
Build metadata:
humblebee helpprintsVersion: <version> (<commit>)after release builds -
Release fails, remove tags local and remote:
git tag -d v0.x.x git push --delete origin v0.x.x