From 101cf2a6e700aa3052eb84b2b0bc772389e0ade8 Mon Sep 17 00:00:00 2001 From: Palash Debnath Date: Thu, 11 Jun 2026 13:58:28 +0530 Subject: [PATCH] ci(release): reinstate macOS Intel (x86_64) build target on macos-15-intel (#342) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Intel MacBook users had no installable artifact: the release matrix only built aarch64-apple-darwin, and Rosetta 2 cannot run arm64 apps on Intel (it only translates the other direction) — the rationale in the old "Intel dropped" comment was backwards. Refs #279. - Add a native `macos-15-intel` matrix leg (GitHub's designated x86_64 migration target after macos-13 retired Dec 2025; standard image, supported through Aug 2027) building --target x86_64-apple-darwin with app,dmg,updater bundles. - Existing per-TRIPLE steps already carry x86_64-apple-darwin cases (uv sidecar tar.gz, evermeet.cx ffmpeg/ffprobe — x86_64 Mach-O, natively correct on Intel), so the leg flows through the same Bundle/Build/Smoke/Verify steps untouched. - The PR #290 signing path applies automatically: ad-hoc seal from tauri.conf.json signingIdentity "-", opt-in APPLE_* stable signing, and scripts/verify-macos-signing.sh both gated on runner.os == macOS. - tauri-action includeUpdaterJson merges the new darwin-x86_64 platform key into latest.json alongside darwin-aarch64, so Intel installs auto-update on both Stable and Preview channels. - docs/install/macos.md: table telling users which DMG (aarch64 vs x64) matches their Mac, and the from-source fallback for old releases. Co-authored-by: mergetest Co-authored-by: Claude Fable 5 --- .github/workflows/release.yml | 30 ++++++++++++++++++++++++++---- docs/install/macos.md | 13 +++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c62cb450..01476046 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -133,9 +133,28 @@ jobs: rust_target: aarch64-apple-darwin bundles: "app,dmg,updater" - # macOS Intel dropped: Apple shipped the last Intel Mac in 2023 and - # Rosetta 2 runs the ARM build natively. macos-13 runner backlog - # was also blocking every release tag for ~10 min. + # macOS Intel (#279): reinstated. The earlier "Rosetta 2 runs the + # ARM build" rationale for dropping it was backwards — Rosetta only + # translates x86_64→arm64, so Intel Macs (supported through macOS + # Sequoia) simply cannot run the aarch64 bundle and had NO + # installable artifact. Runner: `macos-15-intel`, GitHub's + # designated migration target after macos-13 retired (Dec 2025); + # it's a standard (public-repo-free) image supported through + # August 2027 — the last x86_64 image Actions will offer. Building + # natively (not cross-compiling from the arm64 leg) keeps the + # per-TRIPLE uv/ffmpeg sidecar fetches, the DMG installer smoke, + # and the ad-hoc signing verification (scripts/ + # verify-macos-signing.sh, PR #290) all exercising the real + # x86_64 artifact on real Intel hardware. The macos-13 queue + # backlog that motivated the original drop is contained by + # fail-fast:false — a slow Intel leg can delay the release run but + # can't fail the other targets. + - os: macos-15-intel + arch: x86_64-apple-darwin + label: "macOS Intel" + rust_target: x86_64-apple-darwin + bundles: "app,dmg,updater" + # Windows: force MSI bundling via --bundles. NSIS fails at makensis # because our PyInstaller payload approaches its ~2 GB stub limit. - os: windows-2022 @@ -291,7 +310,10 @@ jobs: case "$TRIPLE" in aarch64-apple-darwin|x86_64-apple-darwin) # evermeet.cx ships each binary as a separate .zip containing - # a single x86_64 Mach-O executable (runs via Rosetta on arm64). + # a single x86_64 Mach-O executable — natively correct on the + # Intel leg, and runs via Rosetta 2 on the arm64 leg. Both + # darwin TRIPLEs therefore bundle the same payload; only the + # sidecar filename suffix differs. for TOOL in ffmpeg ffprobe; do if [ "$TOOL" = "ffmpeg" ]; then URL="https://evermeet.cx/ffmpeg/getrelease/zip" diff --git a/docs/install/macos.md b/docs/install/macos.md index e552b6f2..e0470094 100644 --- a/docs/install/macos.md +++ b/docs/install/macos.md @@ -35,6 +35,19 @@ Download the latest DMG from the [Releases page](https://github.com/debpalash/OmniVoice-Studio/releases/latest), double-click to mount, drag **OmniVoice Studio.app** into `/Applications`. +Pick the DMG that matches your Mac (check **Apple menu → About This Mac → Chip/Processor**): + +| Mac | DMG to download | +|-----|-----------------| +| Apple Silicon (M1/M2/M3/M4…) | `OmniVoice.Studio__aarch64.dmg` | +| Intel | `OmniVoice.Studio__x64.dmg` | + +The architectures are **not** interchangeable: an Intel Mac cannot run the +`aarch64` build (Rosetta 2 only translates the other direction — it lets Apple +Silicon run Intel apps, never the reverse). If a release predates the Intel +build target and has no `x64` DMG, use the +[install-from-source path](#install-from-source) above instead. + If the first launch is blocked by macOS Gatekeeper ("OmniVoice Studio cannot be opened because the developer cannot be verified"), see the next section — it opens with one right-click, no Terminal.