name: Package WiiCompiled OpenXR VR on: push: tags: ['v*'] workflow_dispatch: permissions: contents: read concurrency: group: package-vr-${{ github.ref }} cancel-in-progress: false jobs: recompilation: uses: ./.github/workflows/recomp-test.yml windows: runs-on: windows-latest steps: - uses: actions/checkout@v7 with: persist-credentials: false - uses: actions/setup-dotnet@v6 with: dotnet-version: '8.0.x' - name: Verify release version shell: pwsh env: RELEASE_TAG: ${{ startsWith(github.ref, 'refs/tags/v') && github.ref_name || '' }} run: ./Launcher/Verify-Release.ps1 -Tag $env:RELEASE_TAG - name: Test translator run: dotnet test translator/Translator.sln -c Release - name: Build and audit setup payload shell: pwsh run: | ./Launcher/Build-Installer.ps1 ./Launcher/Verify-Release.ps1 -SetupPath (Resolve-Path Launcher/dist/WiiCompiled-Setup.exe) ./Launcher/dist/WiiCompiled-Setup.exe --self-test if ($LASTEXITCODE -ne 0) { throw 'Setup self-tests failed.' } $hash = (Get-FileHash Launcher/dist/WiiCompiled-Setup.exe -Algorithm SHA256).Hash.ToLowerInvariant() "$hash WiiCompiled-Setup.exe" | Set-Content Launcher/dist/SHA256SUMS.txt - uses: actions/upload-artifact@v7 with: name: WiiCompiled-OpenXR-VR-windows-x64 path: | Launcher/dist/WiiCompiled-Setup.exe Launcher/dist/SHA256SUMS.txt if-no-files-found: error release: if: startsWith(github.ref, 'refs/tags/v') needs: [windows, recompilation] runs-on: windows-latest permissions: contents: write steps: - uses: actions/download-artifact@v8 with: name: WiiCompiled-OpenXR-VR-windows-x64 path: artifacts - name: Publish Windows setup shell: pwsh env: GH_TOKEN: ${{ github.token }} TAG: ${{ github.ref_name }} REPOSITORY: ${{ github.repository }} run: | gh release create $env:TAG artifacts/WiiCompiled-Setup.exe artifacts/SHA256SUMS.txt --repo $env:REPOSITORY --verify-tag --title "WiiCompiled OpenXR VR $env:TAG (beta)" --notes "Windows x64 OpenXR beta. Install through WheelWizard VR. Requires your own clean PAL RMCP01 disc image; game code and assets are compiled locally." if ($LASTEXITCODE -ne 0) { throw 'Release publication failed.' }