2222 - platform : " ubuntu-22.04"
2323 args : " "
2424 os-name : " linux"
25+ - platform : " macos-latest"
26+ args : " --target aarch64-apple-darwin --skip-stapling"
27+ os-name : " macos-aarch64"
28+ rust-targets : " aarch64-apple-darwin x86_64-apple-darwin"
29+ - platform : " macos-latest"
30+ args : " --target x86_64-apple-darwin --skip-stapling"
31+ os-name : " macos-x64"
32+ rust-targets : " aarch64-apple-darwin x86_64-apple-darwin"
2533
2634 runs-on : ${{ matrix.platform }}
2735 steps :
5361 uses : ./.github/actions/setup-rust
5462 with :
5563 components : " "
64+ targets : ${{ matrix.rust-targets || '' }}
5665
5766 - name : Generate licenses.json
5867 run : npx license-checker --production --json > licenses.json
7483 node .github/scripts/update-tauri-config.ts \
7584 --tag "$TAG" \
7685 --sign "trusted-signing-cli -e https://eus.codesigning.azure.net/ -a hardware-monitor -c hv-certificate %1"
86+ elif [ "${{ runner.os }}" = "macOS" ]; then
87+ node .github/scripts/update-tauri-config.ts \
88+ --tag "$TAG" \
89+ --sign ""
7790 else
7891 node .github/scripts/update-tauri-config.ts \
7992 --tag "$TAG"
8396 if : ${{ env.ENABLE_WINDOWS_SIGNING == 'true' && matrix.platform == 'windows-latest' }}
8497 run : cargo install trusted-signing-cli
8598
99+ - name : Setup Apple API Key for notarization
100+ if : runner.os == 'macOS'
101+ shell : bash
102+ run : |
103+ KEY_DIR="${RUNNER_TEMP}/private_keys"
104+ mkdir -p "$KEY_DIR"
105+ APPLE_API_KEY_PATH="$KEY_DIR/AuthKey_${{ secrets.APPLE_API_KEY }}.p8"
106+ printf '%s' "${{ secrets.APPLE_API_KEY_CONTENT }}" > "$APPLE_API_KEY_PATH"
107+ chmod 600 "$APPLE_API_KEY_PATH"
108+ echo "APPLE_API_KEY_PATH=$APPLE_API_KEY_PATH" >> "$GITHUB_ENV"
109+
86110 # Generate THIRD_PARTY_LICENSES file
87111 # Generate here to include in Tauri build bundle
88112 - name : Install cargo-license
@@ -99,6 +123,12 @@ jobs:
99123 AZURE_TENANT_ID : ${{ env.ENABLE_WINDOWS_SIGNING == 'true' && matrix.platform == 'windows-latest' && secrets.AZURE_TENANT_ID || '' }}
100124 TAURI_SIGNING_PRIVATE_KEY : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
101125 TAURI_SIGNING_PRIVATE_KEY_PASSWORD : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
126+ APPLE_CERTIFICATE : ${{ secrets.APPLE_CERTIFICATE }}
127+ APPLE_CERTIFICATE_PASSWORD : ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
128+ APPLE_SIGNING_IDENTITY : ${{ secrets.APPLE_SIGNING_IDENTITY }}
129+ APPLE_API_ISSUER : ${{ secrets.APPLE_API_ISSUER }}
130+ APPLE_API_KEY : ${{ secrets.APPLE_API_KEY }}
131+ APPLE_API_KEY_PATH : ${{ env.APPLE_API_KEY_PATH }}
102132 with :
103133 tagName : ${{ github.ref_name }}
104134 releaseName : ${{ github.ref_name }}
@@ -139,109 +169,7 @@ jobs:
139169 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
140170 shell : bash
141171
142- publish-tauri-macos :
143- if : ${{ contains(github.ref_name, '-alpha') || contains(github.ref_name, '-beta') }}
144- permissions :
145- contents : write
146- strategy :
147- fail-fast : false
148- matrix :
149- include :
150- - platform : ' macos-latest' # for Arm based macs (M1 and above).
151- args : ' --target aarch64-apple-darwin --skip-stapling'
152- os-name : ' macos-aarch64'
153- - platform : ' macos-latest' # for Intel based macs.
154- args : ' --target x86_64-apple-darwin --skip-stapling'
155- os-name : ' macos-x64'
156-
157- runs-on : ${{ matrix.platform }}
158- steps :
159- - name : Checkout repository
160- uses : actions/checkout@v6
161-
162- - name : Setup Node.js
163- uses : ./.github/actions/setup-node
164- with :
165- setup-safe-chain : false
166-
167- - name : Setup Rust
168- uses : ./.github/actions/setup-rust
169- with :
170- targets : " aarch64-apple-darwin x86_64-apple-darwin"
171-
172- - name : Generate licenses.json
173- run : npx license-checker --production --json > licenses.json
174-
175- - name : Check licenses
176- run : node --experimental-strip-types .github/scripts/check-licenses.ts licenses.json
177-
178- - name : Export VERSION for later steps
179- shell : bash
180- run : |
181- echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
182-
183- - name : Update tauri.conf.json using Node.js script
184- shell : bash
185- run : |
186- TAG="${GITHUB_REF_NAME}" # v1.x.x
187-
188- node .github/scripts/update-tauri-config.ts \
189- --tag "$TAG" \
190- --sign ""
191-
192- - name : Setup Apple API Key for notarization
193- shell : bash
194- run : |
195- KEY_DIR="${RUNNER_TEMP}/private_keys"
196- mkdir -p "$KEY_DIR"
197- APPLE_API_KEY_PATH="$KEY_DIR/AuthKey_${{ secrets.APPLE_API_KEY }}.p8"
198- printf '%s' "${{ secrets.APPLE_API_KEY_CONTENT }}" > "$APPLE_API_KEY_PATH"
199- chmod 600 "$APPLE_API_KEY_PATH"
200- echo "APPLE_API_KEY_PATH=$APPLE_API_KEY_PATH" >> "$GITHUB_ENV"
201-
202- # Generate THIRD_PARTY_LICENSES file
203- # Generate here to include in Tauri build bundle
204- - name : Cache cargo-license binary
205- id : cache-cargo-license
206- uses : actions/cache@v5
207- with :
208- path : ~/.cargo/bin/cargo-license
209- key : cargo-license-${{ runner.os }}-v1
210-
211- - name : Install cargo-license
212- if : steps.cache-cargo-license.outputs.cache-hit != 'true'
213- run : cargo install cargo-license
214-
215- - name : Generate THIRD_PARTY_NOTICES
216- run : node --experimental-strip-types .github/scripts/generate-licenses.ts tmp
217-
218- - uses : tauri-apps/tauri-action@73fb865345c54760d875b94642314f8c0c894afa # v0.6.1
219- env :
220- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
221- TAURI_SIGNING_PRIVATE_KEY : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
222- TAURI_SIGNING_PRIVATE_KEY_PASSWORD : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
223- APPLE_CERTIFICATE : ${{ secrets.APPLE_CERTIFICATE }}
224- APPLE_CERTIFICATE_PASSWORD : ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
225- APPLE_SIGNING_IDENTITY : ${{ secrets.APPLE_SIGNING_IDENTITY }}
226- APPLE_API_ISSUER : ${{ secrets.APPLE_API_ISSUER }}
227- APPLE_API_KEY : ${{ secrets.APPLE_API_KEY }}
228- APPLE_API_KEY_PATH : ${{ env.APPLE_API_KEY_PATH }}
229- with :
230- tagName : ${{ github.ref_name }}
231- releaseName : ${{ github.ref_name }}
232- releaseDraft : true
233- prerelease : true
234- args : ${{ matrix.args }}
235-
236- - name : Upload THIRD_PARTY_NOTICES.md
237- run : |
238- mv ./tmp/THIRD_PARTY_NOTICES.md ./tmp/THIRD_PARTY_NOTICES_${{ matrix.os-name }}.md
239- gh release upload "${{ github.ref_name }}" ./tmp/THIRD_PARTY_NOTICES_${{ matrix.os-name }}.md
240- env :
241- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
242- shell : bash
243-
244172 - name : Cleanup Apple API Key
245- if : always()
173+ if : ${{ always() && runner.os == 'macOS' }}
246174 shell : bash
247175 run : rm -rf "${RUNNER_TEMP}/private_keys"
0 commit comments