name: Build ChanDesk Pro on: push: branches: - main tags: - 'v*' workflow_dispatch: permissions: contents: write jobs: build: strategy: fail-fast: false matrix: include: # Linux - platform: 'ubuntu-22.04' rust_target: '' args: '' name: 'linux' # Windows - platform: 'windows-latest' rust_target: '' args: '' name: 'windows' # macOS Intel - platform: 'macos-latest' rust_target: 'x86_64-apple-darwin' args: '--target x86_64-apple-darwin' name: 'macos-intel' # macOS Apple Silicon - platform: 'macos-latest' rust_target: 'aarch64-apple-darwin' args: '--target aarch64-apple-darwin' name: 'macos-arm' runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v4 - name: Setup Bun uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install Rust stable uses: dtolnay/rust-toolchain@stable with: targets: ${{ matrix.rust_target }} - name: Install dependencies (Ubuntu) if: matrix.platform == 'ubuntu-22.04' run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf - name: Install frontend dependencies run: bun install - name: Build the app uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} with: tagName: v${{ github.run_number }}-${{ github.sha }} releaseName: 'ChanDesk Pro Build #${{ github.run_number }}' releaseBody: | ## 🚀 ChanDesk Pro - Automated Build **Commit:** ${{ github.sha }} **Branch:** ${{ github.ref_name }} Download the installer for your platform below. releaseDraft: false prerelease: true includeRelease: true args: ${{ matrix.args }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: chandesk-${{ matrix.name }} path: | src-tauri/target/release/bundle/deb/*.deb src-tauri/target/release/bundle/appimage/*.AppImage src-tauri/target/release/bundle/msi/*.msi src-tauri/target/release/bundle/nsis/*.exe src-tauri/target/release/bundle/dmg/*.dmg src-tauri/target/release/bundle/macos/*.app if-no-files-found: ignore