Publish darwin_arm64 server release artifact#282
Open
jarugupj wants to merge 1 commit into
Open
Conversation
Add a release-darwin CI job that builds the macOS server on a macos-14 runner and uploads hypeman_<version>_darwin_arm64.tar.gz to the release. The server links cgo against Virtualization.framework, so it cannot be cross-compiled from the Linux release runner. The archive contains hypeman-api, hypeman-token, and config.example.darwin.yaml, matching what the macOS install path expects. Binaries ship unsigned; the installer ad-hoc codesigns at install time. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Created a monitoring plan for this PR. What this PR does: Adds a macOS arm64 build and release artifact to the hypeman release pipeline — users installing hypeman on Apple Silicon Macs will now get a native darwin_arm64 binary in each release. Intended effect:
Risks:
Status updates will be posted automatically on this PR as monitoring progresses. |
rgarcia
approved these changes
Jun 10, 2026
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.
Summary
Adds a
release-darwinCI job so cutting a release also publishes a macOS server artifact:hypeman_<version>_darwin_arm64.tar.gz.Today the release workflow builds Linux server artifacts only, so on Apple Silicon macOS
curl -fsSL https://get.hypeman.sh | bashfails — the installer looks forhypeman_<version>_darwin_arm64.tar.gz, which is never published, and aborts before the server install completes.The macOS server links cgo against Apple's Virtualization.framework (via
Code-Hex/vz), so it cannot be cross-compiled from the existing Linux release runner. This adds a second job on a GitHub-hostedmacos-14(Apple Silicon) runner that builds and uploads the artifact. macOS runners are free for this public repo.What the job does
needs: release— runs after the Linux job, which creates the GitHub Release to attach to.make build-darwinbuilds the server (with the vz-shim embedded), plusgo build ./cmd/gen-jwtfor the token tool.hypeman-api(renamed from the Makefile'sbin/hypeman),hypeman-token, andconfig.example.darwin.yamlintohypeman_<version>_darwin_arm64.tar.gzand uploads it to the release.Deliberately excluded:
hypeman-uffd-pager(Linuxuserfaultfdonly) and any standalonevz-shim(it's embedded into the server binary and re-signed at runtime). Binaries ship unsigned — the installer ad-hoc codesignshypeman-apiwith the vz entitlements at install time, so no notarization/Developer-ID is needed for thecurl | bashflow.Notes / limitations
gh release uploadafter GoReleaser runs, so it is not listed in GoReleaser'schecksums.txt. The installer does not verify checksums, so this doesn't affect installs..goreleaser.yamlis intentionally untouched — GoReleaser can't run the multi-stepmake build-darwinembed flow in a singlego build, so the Mac job builds and uploads directly.Test plan
make build-darwin+go build ./cmd/gen-jwtsucceed, and the staged tarball containshypeman-api,hypeman-token, andconfig.example.darwin.yamlat root — matching whatscripts/install.shextracts on macOS.make build-darwinonmacos-14+gh release upload) hasn't fired yet — only a realv*tag exercises the upload. Recommend a test/prerelease tag (or a temporaryworkflow_dispatchrun) before relying on it.Note
Medium Risk
Touches the release pipeline and publishes new production binaries; failure or wrong archive layout would break macOS installs until fixed.
Overview
Adds a
release-darwinGitHub Actions job so version tags also shiphypeman_<version>_darwin_arm64.tar.gz, unblocking the macOS installer that expects that asset.The new job runs on
macos-14after the existing Linux GoReleaserreleasejob (cgo/Virtualization.framework prevents cross-building from Linux). It runsmake build-darwin, buildshypeman-tokenfrom./cmd/gen-jwt, stageshypeman-api,hypeman-token, andconfig.example.darwin.yaml, thengh release uploads the tarball to the same tag (outside GoReleaser/checksums).Reviewed by Cursor Bugbot for commit a61a292. Bugbot is set up for automated code reviews on this repo. Configure here.