@@ -243,9 +243,9 @@ jobs:
243243 path : ZeroLimit_*_Windows_arm64-setup.exe.sig
244244
245245 # ===========================================
246- # 4. Build macOS (Universal: x64 + ARM64 )
246+ # 4. Build macOS Intel ( x64)
247247 # ===========================================
248- build-macos :
248+ build-macos-x64 :
249249 needs : create-release
250250 runs-on : macos-latest
251251 steps :
@@ -265,7 +265,7 @@ jobs:
265265 - name : Setup Rust
266266 uses : dtolnay/rust-toolchain@stable
267267 with :
268- targets : aarch64-apple-darwin, x86_64-apple-darwin
268+ targets : x86_64-apple-darwin
269269
270270 - name : Cache Cargo
271271 uses : actions/cache@v4
@@ -276,28 +276,20 @@ jobs:
276276 ~/.cargo/registry/cache/
277277 ~/.cargo/git/db/
278278 src-tauri/target/
279- key : ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
279+ key : ${{ runner.os }}-cargo-x64- ${{ hashFiles('**/Cargo.lock') }}
280280 restore-keys : |
281- ${{ runner.os }}-cargo-
281+ ${{ runner.os }}-cargo-x64-
282282
283283 - name : Install frontend dependencies
284284 run : pnpm install
285285
286- - name : Build Tauri (Apple Silicon)
287- run : pnpm tauri build --target aarch64-apple-darwin
288-
289286 - name : Build Tauri (Intel)
290287 run : pnpm tauri build --target x86_64-apple-darwin
291288
292289 - name : Rename and Prepare artifacts
293290 run : |
294291 VERSION="${{ needs.create-release.outputs.version }}"
295292
296- # Rename Apple Silicon artifacts
297- mv src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/ZeroLimit_${VERSION}_aarch64.dmg "ZeroLimit_${VERSION}_macOS_aarch64.dmg"
298- mv src-tauri/target/aarch64-apple-darwin/release/bundle/macos/ZeroLimit.app.tar.gz "ZeroLimit_${VERSION}_macOS_aarch64.app.tar.gz"
299- mv src-tauri/target/aarch64-apple-darwin/release/bundle/macos/ZeroLimit.app.tar.gz.sig "ZeroLimit_${VERSION}_macOS_aarch64.app.tar.gz.sig"
300-
301293 # Rename Intel artifacts
302294 mv src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/ZeroLimit_${VERSION}_x64.dmg "ZeroLimit_${VERSION}_macOS_x64.dmg"
303295 mv src-tauri/target/x86_64-apple-darwin/release/bundle/macos/ZeroLimit.app.tar.gz "ZeroLimit_${VERSION}_macOS_x64.app.tar.gz"
@@ -309,21 +301,87 @@ jobs:
309301 tag_name : v${{ needs.create-release.outputs.version }}
310302 draft : true
311303 files : |
312- ZeroLimit_*_macOS_aarch64.dmg
313304 ZeroLimit_*_macOS_x64.dmg
314- ZeroLimit_*_macOS_aarch64.app.tar.gz
315- ZeroLimit_*_macOS_aarch64.app.tar.gz.sig
316305 ZeroLimit_*_macOS_x64.app.tar.gz
317306 ZeroLimit_*_macOS_x64.app.tar.gz.sig
318307
319308 - name : Upload signatures for latest.json
320309 uses : actions/upload-artifact@v4
321310 with :
322- name : signatures-macos
323- path : ZeroLimit_*_macOS_* .app.tar.gz.sig
311+ name : signatures-macos-x64
312+ path : ZeroLimit_*_macOS_x64 .app.tar.gz.sig
324313
325314 # ===========================================
326- # 5. Build Linux x64
315+ # 5. Build macOS Apple Silicon (ARM64)
316+ # ===========================================
317+ build-macos-arm64 :
318+ needs : create-release
319+ runs-on : macos-latest
320+ steps :
321+ - name : Checkout
322+ uses : actions/checkout@v4
323+ with :
324+ ref : main
325+
326+ - name : Setup Node.js
327+ uses : actions/setup-node@v4
328+ with :
329+ node-version : 20
330+
331+ - name : Setup pnpm
332+ uses : pnpm/action-setup@v4
333+
334+ - name : Setup Rust
335+ uses : dtolnay/rust-toolchain@stable
336+ with :
337+ targets : aarch64-apple-darwin
338+
339+ - name : Cache Cargo
340+ uses : actions/cache@v4
341+ with :
342+ path : |
343+ ~/.cargo/bin/
344+ ~/.cargo/registry/index/
345+ ~/.cargo/registry/cache/
346+ ~/.cargo/git/db/
347+ src-tauri/target/
348+ key : ${{ runner.os }}-cargo-arm64-${{ hashFiles('**/Cargo.lock') }}
349+ restore-keys : |
350+ ${{ runner.os }}-cargo-arm64-
351+
352+ - name : Install frontend dependencies
353+ run : pnpm install
354+
355+ - name : Build Tauri (Apple Silicon)
356+ run : pnpm tauri build --target aarch64-apple-darwin
357+
358+ - name : Rename and Prepare artifacts
359+ run : |
360+ VERSION="${{ needs.create-release.outputs.version }}"
361+
362+ # Rename Apple Silicon artifacts
363+ mv src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/ZeroLimit_${VERSION}_aarch64.dmg "ZeroLimit_${VERSION}_macOS_aarch64.dmg"
364+ mv src-tauri/target/aarch64-apple-darwin/release/bundle/macos/ZeroLimit.app.tar.gz "ZeroLimit_${VERSION}_macOS_aarch64.app.tar.gz"
365+ mv src-tauri/target/aarch64-apple-darwin/release/bundle/macos/ZeroLimit.app.tar.gz.sig "ZeroLimit_${VERSION}_macOS_aarch64.app.tar.gz.sig"
366+
367+ - name : Upload artifacts to release
368+ uses : softprops/action-gh-release@v2
369+ with :
370+ tag_name : v${{ needs.create-release.outputs.version }}
371+ draft : true
372+ files : |
373+ ZeroLimit_*_macOS_aarch64.dmg
374+ ZeroLimit_*_macOS_aarch64.app.tar.gz
375+ ZeroLimit_*_macOS_aarch64.app.tar.gz.sig
376+
377+ - name : Upload signatures for latest.json
378+ uses : actions/upload-artifact@v4
379+ with :
380+ name : signatures-macos-arm64
381+ path : ZeroLimit_*_macOS_aarch64.app.tar.gz.sig
382+
383+ # ===========================================
384+ # 6. Build Linux x64
327385 # ===========================================
328386 build-linux :
329387 needs : create-release
@@ -381,16 +439,21 @@ jobs:
381439 run : |
382440 VERSION="${{ needs.create-release.outputs.version }}"
383441
442+ echo "Listing build output directory:"
443+ ls -R src-tauri/target/release/bundle/
444+
384445 # Debian (using wildcard for safety)
385- mv src-tauri/target/release/bundle/deb/*_${VERSION}_amd64.deb "ZeroLimit_${VERSION}_Linux_x64.deb"
446+ find src-tauri/target/release/bundle/deb/ -name " *_${VERSION}_amd64.deb" -exec mv {} "ZeroLimit_${VERSION}_Linux_x64.deb" \;
386447
387448 # RPM (using wildcard for safety)
388- mv src-tauri/target/release/bundle/rpm/*-${VERSION}-1.x86_64.rpm "ZeroLimit_${VERSION}_Linux_x64.rpm"
449+ find src-tauri/target/release/bundle/rpm/ -name " *-${VERSION}-1.x86_64.rpm" -exec mv {} "ZeroLimit_${VERSION}_Linux_x64.rpm" \;
389450
390451 # AppImage (using wildcard for safety)
391- mv src-tauri/target/release/bundle/appimage/*_${VERSION}_amd64.AppImage "ZeroLimit_${VERSION}_Linux_x64.AppImage"
392- mv src-tauri/target/release/bundle/appimage/*_${VERSION}_amd64.AppImage.tar.gz "ZeroLimit_${VERSION}_Linux_x64.AppImage.tar.gz"
393- mv src-tauri/target/release/bundle/appimage/*_${VERSION}_amd64.AppImage.tar.gz.sig "ZeroLimit_${VERSION}_Linux_x64.AppImage.tar.gz.sig"
452+ find src-tauri/target/release/bundle/appimage/ -name "*_${VERSION}_amd64.AppImage" -exec mv {} "ZeroLimit_${VERSION}_Linux_x64.AppImage" \;
453+
454+ # AppImage.tar.gz (optional updater artifact)
455+ find src-tauri/target/release/bundle/appimage/ -name "*_${VERSION}_amd64.AppImage.tar.gz" -exec mv {} "ZeroLimit_${VERSION}_Linux_x64.AppImage.tar.gz" \;
456+ find src-tauri/target/release/bundle/appimage/ -name "*_${VERSION}_amd64.AppImage.tar.gz.sig" -exec mv {} "ZeroLimit_${VERSION}_Linux_x64.AppImage.tar.gz.sig" \;
394457
395458 - name : Upload artifacts to release
396459 uses : softprops/action-gh-release@v2
@@ -411,10 +474,10 @@ jobs:
411474 path : ZeroLimit_*_Linux_x64.AppImage.tar.gz.sig
412475
413476 # ===========================================
414- # 6 . Publish Release + Generate latest.json
477+ # 7 . Publish Release + Generate latest.json
415478 # ===========================================
416479 publish-release :
417- needs : [create-release, build-windows-x64, build-windows-arm64, build-macos, build-linux]
480+ needs : [create-release, build-windows-x64, build-windows-arm64, build-macos-x64, build-macos-arm64 , build-linux]
418481 runs-on : ubuntu-latest
419482 steps :
420483 - name : Checkout
0 commit comments