From d5a6ab6493ffb2c3b0276f79b65c7dbee4ae56bb Mon Sep 17 00:00:00 2001 From: Mateus Demboski Date: Fri, 3 Jul 2026 06:32:43 -0300 Subject: [PATCH] ci(release): build macOS universal binary Matrix defined a platform field for the darwin/universal build but the build step never consumed it, so the mac job produced a host-arch-only .app. Wire ${{ matrix.platform }} into wails build so macOS ships a real universal (arm64 + amd64) binary; Windows/Linux pass empty. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/release.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2a6af00..0961580 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -78,17 +78,21 @@ jobs: fail-fast: false matrix: include: - # UPX is skipped on macOS: modern macOS kills UPX-packed binaries and - # it breaks code signing. Linux/Windows compress fine. + # macOS: build a universal binary (arm64 + amd64) so one .app runs on + # both Apple Silicon and Intel. UPX is skipped on macOS (modern macOS + # kills UPX-packed binaries + it breaks signing); Linux/Windows compress. - os: macos-latest - artifact: SpoolID-macos.zip + artifact: SpoolID-macos-universal.zip upx: "" + platform: "-platform darwin/universal" - os: windows-latest artifact: SpoolID-windows.zip upx: "-upx" + platform: "" - os: ubuntu-22.04 artifact: SpoolID-linux.zip upx: "-upx" + platform: "" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 @@ -114,7 +118,7 @@ jobs: if [ "$RUNNER_OS" = "Linux" ]; then sudo apt-get install -y upx-ucl; fi if [ "$RUNNER_OS" = "Windows" ]; then choco install upx -y; fi - name: Build (version from tag) - run: cd desktop && wails build ${{ matrix.upx }} -ldflags "-X main.version=${{ needs.release-please.outputs.version }}" + run: cd desktop && wails build ${{ matrix.upx }} ${{ matrix.platform }} -ldflags "-X main.version=${{ needs.release-please.outputs.version }}" - name: Package artifact shell: bash run: |