Skip to content

ci(release): publish homebrew formula on tag#86

Merged
bryantbiggs merged 1 commit into
mainfrom
feat/homebrew-tap
May 5, 2026
Merged

ci(release): publish homebrew formula on tag#86
bryantbiggs merged 1 commit into
mainfrom
feat/homebrew-tap

Conversation

@bryantbiggs

Copy link
Copy Markdown
Member

Summary

  • New homebrew job at the end of release.yml, gated on release succeeding.
  • On v* tag push, downloads sha256sums.txt from the freshly-published GitHub Release, renders Formula/ocync.rb, commits and pushes it to clowdhaus/homebrew-taps.
  • Adds Homebrew section to README.md install block and docs/src/content/getting-started.md.

Install becomes:

brew install clowdhaus/taps/ocync

Setup required

Repo secret HOMEBREW_TAP_TOKEN (already configured) — fine-grained PAT scoped to clowdhaus/homebrew-taps with Contents: read/write. PAT expiry will silently fail the homebrew step on a future release without affecting the binary release itself.

Design notes

  • Re-fetches sha256sums.txt from the GitHub Release rather than re-uploading it as a workflow artifact. Proves the file actually shipped to the release before trusting its SHAs, and avoids editing the existing release job.
  • Raw-binary install with platform-conditional bin.install "filename" => "ocync". Other formulas in the tap (eksup, cookiecluster, ktime) use the tarball pattern via update_sha256.sh; ocync's release artifacts are raw binaries with -fips suffix on Linux and no macOS Intel build, so it gets a self-contained renderer in the workflow rather than extending that script.
  • Skips empty commits via git diff --cached --quiet so re-tagging the same version is idempotent.
  • Caveats block mentions Linux uses FIPS-validated AWS-LC since the -fips suffix in the URL is invisible to brew users.

Coverage

Platform Source artifact Formula handling
macOS arm64 ocync-macos-arm64 yes
macOS Intel (not built) not supported
Linux amd64 ocync-fips-linux-amd64 yes
Linux arm64 ocync-fips-linux-arm64 yes
Windows ocync-windows-amd64.exe not applicable (Homebrew)

Test plan

  • Cut a tag (or manually invoke release.yml on a test tag) and verify the homebrew job runs after release succeeds.
  • Confirm Formula/ocync.rb lands on clowdhaus/homebrew-taps:main with correct version, SHAs, and URLs.
  • brew tap clowdhaus/taps && brew install ocync && ocync --version on macOS arm64.
  • brew install clowdhaus/taps/ocync && ocync --version on Linux (amd64 or arm64).
  • Re-tag the same version and confirm the homebrew job exits cleanly without an empty commit.

Adds a `homebrew` job after `release` that downloads sha256sums.txt
from the freshly-published GitHub Release, renders Formula/ocync.rb
with platform blocks for macOS arm64, Linux amd64-fips, Linux
arm64-fips, and pushes the formula to clowdhaus/homebrew-taps.

Requires HOMEBREW_TAP_TOKEN secret (fine-grained PAT with Contents:
write on homebrew-taps). Skips the commit if the formula is unchanged
so re-tags do not produce empty commits.

Install becomes: brew install clowdhaus/taps/ocync
@bryantbiggs
bryantbiggs merged commit 9b0bde8 into main May 5, 2026
16 checks passed
@bryantbiggs
bryantbiggs deleted the feat/homebrew-tap branch May 5, 2026 18:51
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