name: Build macOS Desktop Client on: workflow_dispatch: jobs: build-macos-client: name: Build macOS Client runs-on: macos-arm64 defaults: run: shell: bash working-directory: desktop-client steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "22" - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable with: targets: aarch64-apple-darwin - name: Install desktop client dependencies run: npm install - name: Build bundled macOS tunnel helper run: npm run helper:macos-arm64 - name: Build macOS application bundle run: npx tauri build --target aarch64-apple-darwin - name: Upload macOS app bundle uses: christopherhx/gitea-upload-artifact@v4 with: name: NexaVPN-macos-app path: | desktop-client/src-tauri/target/aarch64-apple-darwin/release/bundle/macos/*.app desktop-client/src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/*.dmg if-no-files-found: error - name: Upload raw macOS build outputs uses: christopherhx/gitea-upload-artifact@v4 with: name: NexaVPN-macos-raw-build path: | desktop-client/src-tauri/target/aarch64-apple-darwin/release/nexavpn-desktop desktop-client/src-tauri/bundled/macos-arm64/nexavpn-tunnel-helper if-no-files-found: error