name: Release Windows Binaries & Installers on: push: tags: - 'v*' workflow_dispatch: inputs: tag: description: 'Release tag to publish assets to (default: v2.0.0)' required: false default: 'v2.0.0' jobs: release-windows: name: Build & Release Windows Binaries & Installers # Note: Requires a registered Gitea Act Runner with label 'windows-latest' runs-on: windows-latest steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.12' continue-on-error: true - name: Install Dependencies shell: powershell run: | $py = "python" if (-not (Get-Command "python" -ErrorAction SilentlyContinue)) { if (Get-Command "py" -ErrorAction SilentlyContinue) { $py = "py -3.12" } } & $py -m pip install --upgrade pip & $py -m pip install pyinstaller cryptography -r compilation/requirements.txt - name: Compile Standalone Windows Binaries shell: powershell run: | $py = "python" if (-not (Get-Command "python" -ErrorAction SilentlyContinue)) { if (Get-Command "py" -ErrorAction SilentlyContinue) { $py = "py -3.12" } } & $py compilation/package_dist.py --target windows - name: Compile Inno Setup Installers shell: powershell run: | $iscc = $null if (Test-Path "C:\Program Files (x86)\Inno Setup 6\ISCC.exe") { $iscc = "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" } elseif (Test-Path "C:\Program Files\Inno Setup 6\ISCC.exe") { $iscc = "C:\Program Files\Inno Setup 6\ISCC.exe" } elseif (Get-Command "ISCC.exe" -ErrorAction SilentlyContinue) { $iscc = "ISCC.exe" } if ($iscc) { Write-Host "[*] Compiling Windows Inno Setup installers using $iscc..." & $iscc compilation/installer_client.iss & $iscc compilation/installer_server.iss } else { Write-Host "[!] Inno Setup compiler (ISCC.exe) not found on runner host. Skipping installer compilation." } - name: Publish Windows Release Assets shell: powershell env: GITEA_TOKEN: ${{ secrets.TAG_TOKEN || github.token }} GITEA_SERVER_URL: ${{ github.server_url }} GITEA_REPOSITORY: ${{ github.repository }} GITEA_REF_NAME: ${{ inputs.tag || github.event.release.tag_name || github.ref_name }} run: | $py = "python" if (-not (Get-Command "python" -ErrorAction SilentlyContinue)) { if (Get-Command "py" -ErrorAction SilentlyContinue) { $py = "py -3.12" } } & $py compilation/upload_release.py --skip-build