build mac releases for both intel and apple silicon

The mac dmg was previously built only on macos-13 (an Intel runner),
so releases only ran natively on Intel Macs and required Rosetta 2 on
Apple Silicon. cx_Freeze can only build for the host architecture, so
this adds a build matrix with macos-14 (arm64) alongside macos-13 (x64),
and adds ${arch} to the mac artifact name so the two dmgs don't collide.

Build-tested natively on an M2 Mac (macOS 26.5): frontend, cx_Freeze
backend, and electron-builder dmg all build and run natively.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mini 2026-07-03 20:58:16 -05:00
parent b36dcddfcd
commit f29ff40f19
2 changed files with 8 additions and 3 deletions

View file

@ -45,7 +45,12 @@ jobs:
artifacts: "dist/*-win-installer.exe,dist/*-win-portable.exe"
build_mac:
runs-on: macos-13
strategy:
matrix:
# macos-13 is an Intel (x64) runner, macos-14 is an Apple Silicon (arm64) runner.
# cx_Freeze can only build for the host architecture, so each arch needs its own runner.
os: [macos-13, macos-14]
runs-on: ${{ matrix.os }}
permissions:
contents: write
steps:
@ -80,7 +85,7 @@ jobs:
replacesArtifacts: true
omitDraftDuringUpdate: true
omitNameDuringUpdate: true
artifacts: "dist/*-mac.dmg"
artifacts: "dist/*-mac-*.dmg"
build_linux:
runs-on: ubuntu-latest

View file

@ -33,7 +33,7 @@
"mac": {
"target": "dmg",
"identity": null,
"artifactName": "ReticulumMeshChat-v${version}-${os}.${ext}",
"artifactName": "ReticulumMeshChat-v${version}-${os}-${arch}.${ext}",
"extendInfo": {
"NSMicrophoneUsageDescription": "Microphone access is only needed for Audio Calls",
"com.apple.security.device.audio-input": true