name: Build and Release Windows Client on: push: tags: - 'v*' jobs: build: runs-on: windows-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable - name: Install LLVM run: choco install llvm --no-progress - name: Build Client working-directory: ./client run: cargo build --release - name: Prepare Binaries for Installer shell: pwsh run: | New-Item -ItemType Directory -Force -Path bin Copy-Item "client/target/release/meshvpn-client.exe" "bin/client.exe" # Download Wintun.dll as it is a driver binary not stored in git Invoke-WebRequest -Uri "https://github.com/WireGuard/wintun/releases/latest/download/wintun.dll" -OutFile "bin/wintun.dll" - name: Install WiX Toolset run: choco install wixtoolset --no-progress - name: Build MSI Installer shell: pwsh run: | # candle.exe compiles .wxs to .wixobj # light.exe links .wixobj to .msi candle.exe installer/product.wxs -o installer/product.wixobj light.exe installer/product.wixobj -o meshvpn-client.msi - name: Create Gitea Release uses: softprops/action-gh-release@v1 with: files: | client/target/release/meshvpn-client.exe meshvpn-client.msi env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}