Skip to content

Commit 005ab3e

Browse files
its-mashclaude
andauthored
Enable macOS builds with ad-hoc signing in CI/CD workflows (#81)
Signed-off-by: Claude <noreply@anthropic.com> Co-authored-by: Claude <noreply@anthropic.com>
1 parent b07f1a3 commit 005ab3e

3 files changed

Lines changed: 65 additions & 64 deletions

File tree

.github/workflows/ci.yml

Lines changed: 55 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -189,61 +189,62 @@ jobs:
189189

190190
# ─────────────────────────────────────────────────────────────
191191
# Build Verification (macOS only - Linux/Windows covered by e2e-desktop)
192-
# Disabled until macOS signing key is available
193192
# ─────────────────────────────────────────────────────────────
194-
# build:
195-
# needs: [rust-check, ts-check]
196-
# runs-on: macos-latest
197-
# env:
198-
# MACOSX_DEPLOYMENT_TARGET: '10.13'
199-
# steps:
200-
# - uses: actions/checkout@v4
201-
#
202-
# - uses: dtolnay/rust-toolchain@stable
203-
# with:
204-
# targets: aarch64-apple-darwin
205-
#
206-
# - uses: Swatinem/rust-cache@v2
207-
# with:
208-
# key: aarch64-apple-darwin
209-
# shared-key: rust-aarch64-apple-darwin
210-
# cache-on-failure: true
211-
#
212-
# - uses: pnpm/action-setup@v4
213-
# - uses: actions/setup-node@v4
214-
# with:
215-
# node-version: 20
216-
# cache: 'pnpm'
217-
#
218-
# # Cache pnpm store
219-
# - name: Get pnpm store directory
220-
# shell: bash
221-
# run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
222-
#
223-
# - name: Cache pnpm store
224-
# uses: actions/cache@v4
225-
# with:
226-
# path: ${{ env.STORE_PATH }}
227-
# key: pnpm-store-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
228-
# restore-keys: |
229-
# pnpm-store-${{ runner.os }}-
230-
#
231-
# # Cache Tauri CLI binary
232-
# - name: Cache Tauri CLI
233-
# uses: actions/cache@v4
234-
# with:
235-
# path: |
236-
# ~/.cargo/bin/cargo-tauri*
237-
# ~/.cargo/bin/tauri*
238-
# key: tauri-cli-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
239-
# restore-keys: |
240-
# tauri-cli-${{ runner.os }}-
241-
#
242-
# - run: pnpm install --frozen-lockfile
243-
# - run: pnpm build
244-
# env:
245-
# TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
246-
# TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
193+
build:
194+
needs: [rust-check, ts-check]
195+
runs-on: macos-latest
196+
env:
197+
MACOSX_DEPLOYMENT_TARGET: '10.13'
198+
steps:
199+
- uses: actions/checkout@v4
200+
201+
- uses: dtolnay/rust-toolchain@stable
202+
with:
203+
targets: aarch64-apple-darwin
204+
205+
- uses: Swatinem/rust-cache@v2
206+
with:
207+
key: aarch64-apple-darwin
208+
shared-key: rust-aarch64-apple-darwin
209+
cache-on-failure: true
210+
211+
- uses: pnpm/action-setup@v4
212+
- uses: actions/setup-node@v4
213+
with:
214+
node-version: 20
215+
cache: 'pnpm'
216+
217+
# Cache pnpm store
218+
- name: Get pnpm store directory
219+
shell: bash
220+
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
221+
222+
- name: Cache pnpm store
223+
uses: actions/cache@v4
224+
with:
225+
path: ${{ env.STORE_PATH }}
226+
key: pnpm-store-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
227+
restore-keys: |
228+
pnpm-store-${{ runner.os }}-
229+
230+
# Cache Tauri CLI binary
231+
- name: Cache Tauri CLI
232+
uses: actions/cache@v4
233+
with:
234+
path: |
235+
~/.cargo/bin/cargo-tauri*
236+
~/.cargo/bin/tauri*
237+
key: tauri-cli-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
238+
restore-keys: |
239+
tauri-cli-${{ runner.os }}-
240+
241+
- run: pnpm install --frozen-lockfile
242+
- run: pnpm build
243+
env:
244+
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
245+
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
246+
# Ad-hoc signing (no Apple Developer ID)
247+
APPLE_SIGNING_IDENTITY: '-'
247248

248249
# ─────────────────────────────────────────────────────────────
249250
# Test Results Report (separate checks per test type and OS)

.github/workflows/nightly.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@ jobs:
2323
target: x86_64-unknown-linux-gnu
2424
- os: windows-latest
2525
target: x86_64-pc-windows-msvc
26-
# macOS build disabled until signing key is available
27-
# - os: macos-latest
28-
# target: aarch64-apple-darwin
26+
- os: macos-latest
27+
target: aarch64-apple-darwin
2928
runs-on: ${{ matrix.os }}
3029
steps:
3130
- uses: actions/checkout@v4
@@ -60,6 +59,8 @@ jobs:
6059
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
6160
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
6261
PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
62+
# Ad-hoc signing for macOS (no Apple Developer ID)
63+
APPLE_SIGNING_IDENTITY: ${{ matrix.os == 'macos-latest' && '-' || '' }}
6364

6465
- name: Upload artifacts
6566
uses: actions/upload-artifact@v4

.github/workflows/release.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,12 @@ jobs:
5050
- os: windows-latest
5151
target: x86_64-pc-windows-msvc
5252
artifact: windows
53-
# macOS builds disabled until signing key is available
54-
# - os: macos-latest
55-
# target: aarch64-apple-darwin
56-
# artifact: macos-arm
57-
# - os: macos-15
58-
# target: x86_64-apple-darwin
59-
# artifact: macos-intel
53+
- os: macos-latest
54+
target: aarch64-apple-darwin
55+
artifact: macos-arm
56+
- os: macos-13
57+
target: x86_64-apple-darwin
58+
artifact: macos-intel
6059

6160
runs-on: ${{ matrix.os }}
6261
permissions:

0 commit comments

Comments
 (0)