name: Build & Release on: push: tags: - "v*" permissions: contents: write jobs: build-windows: runs-on: windows-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: "22" - uses: dtolnay/rust-toolchain@stable - name: Install dependencies run: npm install - name: Build Windows run: npm run tauri:build - name: Upload artifacts uses: actions/upload-artifact@v6 with: name: windows-installer path: src-tauri/target/release/bundle/msi/*.msi build-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: "22" - uses: dtolnay/rust-toolchain@stable - name: Install system dependencies run: | sudo apt update sudo apt install -y libwebkit2gtk-4.1-dev \ build-essential curl wget libssl-dev \ libgtk-3-dev libayatana-appindicator3-dev \ librsvg2-dev patchelf - name: Install dependencies run: npm install - name: Build Linux run: npm run tauri:build - name: Upload deb artifact uses: actions/upload-artifact@v6 with: name: linux-deb path: src-tauri/target/release/bundle/deb/*.deb - name: Upload AppImage artifact uses: actions/upload-artifact@v6 with: name: linux-appimage path: src-tauri/target/release/bundle/appimage/*.AppImage build-macos: runs-on: macos-latest steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: "22" - uses: dtolnay/rust-toolchain@stable - name: Install dependencies run: npm install - name: Build macOS run: npm run tauri:build - name: Upload artifacts uses: actions/upload-artifact@v6 with: name: macos-dmg path: src-tauri/target/release/bundle/dmg/*.dmg release: needs: [build-windows, build-linux, build-macos] runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Download all artifacts uses: actions/download-artifact@v6 with: path: artifacts - name: Display downloaded files run: find artifacts -type f | sort - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: name: Lockbox Local ${{ github.ref_name }} draft: false prerelease: false generate_release_notes: true files: | artifacts/windows-installer/*.msi artifacts/linux-deb/*.deb artifacts/linux-appimage/*.AppImage artifacts/macos-dmg/*.dmg