Skip to content

ci(release): add Intel macOS (x86_64) DMG as a release target#748

Open
tlongwell-block wants to merge 1 commit into
mainfrom
intel-mac-release
Open

ci(release): add Intel macOS (x86_64) DMG as a release target#748
tlongwell-block wants to merge 1 commit into
mainfrom
intel-mac-release

Conversation

@tlongwell-block
Copy link
Copy Markdown
Collaborator

What

Adds Intel macOS (x86_64) as a release target. The release workflow now produces a separate, native Intel DMG alongside the existing Apple Silicon one, both codesigned/notarized and attached to the same v<version> GitHub release.

Why

The release only built darwin-aarch64, so Intel Macs had no native download. This ships them a Sprout_<version>_x64.dmg.

We chose two separate DMGs over a universal binary: I built both locally and measured — a universal DMG is 99 MB vs 49 MB for single-arch (the app is native-binary heavy; the sidecars are 20–34 MB each, so a fat binary nearly doubles the download). Two ~50 MB DMGs keep each download small.

Changes

  • .github/workflows/release.yml — new release-macos-x64 job (needs: release). Builds --target x86_64-apple-darwin, codesigns + notarizes via the same block/apple-codesign-action, uploads the Intel DMG to the same versioned release. Mirrors the existing release-linux job's shape; the arm64 release job is untouched.
  • scripts/bundle-sidecars.sh — reads from target/<triple>/release for cross-target builds. Previously it always read target/release, which under a cross --target would silently bundle host-arch binaries. No-arg/host behavior is unchanged (backward-compatible with the arm64 job).
  • RELEASING.md — documents the two-DMG macOS setup; corrects the stale "ARM64 only" / "no notarization" claims.

Scope / follow-up

  • Auto-updater stays darwin-aarch64-only for now (option b). Intel users get the installer but not auto-updates yet — same gap Linux has. Adding darwin-x86_64 (and Linux) entries to latest.json is a tracked follow-up.

Verification

  • Built both single-arch DMGs locally on Apple Silicon: x64 (52 MB, pure x86_64) and aarch64 (49 MB, pure arm64) — confirmed via lipo -archs on the app binary + all 6 sidecars.
  • Re-ran the patched bundle-sidecars.sh for x86_64-apple-darwin; confirmed it pulls the correct per-arch sidecars.

⚠️ Unproven until first CI run: x86 codesign/notarization via block/apple-codesign-action (local builds were --no-sign). Expected to be a non-event — notarytool is arch-agnostic — but it hasn't run in CI yet. And the x86 slice should be smoke-tested on real Intel hardware.

@tlongwell-block tlongwell-block requested a review from a team as a code owner May 25, 2026 15:23
Adds a release-macos-x64 job that builds, codesigns, notarizes, and
uploads a separate x86_64 DMG to the same versioned GitHub release, so
Intel Macs get a native installer alongside Apple Silicon.

- New release-macos-x64 job mirrors the arm64 release job but builds
  --target x86_64-apple-darwin and omits the auto-updater steps (the
  updater manifest stays arm64-only for now; Intel/Linux auto-update is
  a tracked follow-up).
- bundle-sidecars.sh now reads from target/<triple>/release for
  cross-target builds (it previously always read target/release, which
  silently picked up host-arch binaries under a cross --target).
- RELEASING.md updated: macOS now ships two DMGs (arm64 + Intel);
  corrected the stale 'ARM64 only' claims.

Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
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