Skip to content

fix: publish release artifacts and the Homebrew cask - #5

Merged
munterfi merged 2 commits into
mainfrom
ci/homebrew-tap-release
Aug 10, 2026
Merged

fix: publish release artifacts and the Homebrew cask#5
munterfi merged 2 commits into
mainfrom
ci/homebrew-tap-release

Conversation

@munterfi

Copy link
Copy Markdown
Member

Summary

Mounty 1.2.0 shipped with no downloadable artifact: a GitHub Release created by release-please
with the default GITHUB_TOKEN does not emit a release: published event, so release-build.yml
never ran. This wires the pipeline up end to end and moves cask maintenance into
maptic/homebrew-tap.

  • release-build.yml becomes a reusable workflow called by release-please.yml when a release
    is cut. It checks out the released tag and is re-runnable by hand:
    gh workflow run release-build.yml -f tag=1.2.1.
  • Tags are bare semver — 1.2.1, not mounty-v1.2.1. One app per repo, so the component prefix
    only made release URLs redundant. The existing tag and release were renamed to 1.2.0.
  • The inline heredoc that wrote Casks/mounty.rb is replaced by a cask-release
    repository_dispatch. The tap owns the cask and recomputes the sha256 from the published asset
    instead of trusting the payload. Without HOMEBREW_TAP_TOKEN the release still succeeds and only
    the bump is skipped.

Follow-up

Add HOMEBREW_TAP_TOKEN (fine-grained PAT, contents: write on maptic/homebrew-tap) to this
repository's secrets to enable the automatic bump.

Story: docs/stories/024-homebrew-tap-distribution.md

A GitHub Release created by release-please with the default GITHUB_TOKEN does
not emit a `release: published` event, so release-build.yml never ran and
v1.2.0 shipped without a DMG. The build is now called directly from
release-please.yml when a release is cut, checks out the released tag, and is
re-runnable by hand through workflow_dispatch.

Tags drop the component prefix (`v1.2.1`, not `mounty-v1.2.1`) so `${TAG#v}`
yields the real version and the download URL matches what the cask
interpolates.

The cask update moves out of this repository: instead of writing a heredoc
into the tap, the release sends a "cask-release" repository_dispatch to
maptic/homebrew-tap, which owns the cask and recomputes the sha256 from the
published asset. Without HOMEBREW_TAP_TOKEN the release still succeeds and
only the bump is skipped.

Generated-by: claude-opus-5
`mounty-v1.2.0` puts the repository name in a tag inside that same repository,
which makes release URLs read
`maptic/mounty/releases/tag/mounty-v1.2.0`. The repo holds one app, so neither
the component prefix nor the `v` carries information: tags are now `1.2.1`,
and the cask interpolates the version straight into the download URL.

Generated-by: claude-opus-5
@munterfi
munterfi merged commit 8af619f into main Aug 10, 2026
3 checks passed
@munterfi
munterfi deleted the ci/homebrew-tap-release branch August 10, 2026 12:45
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