Files
mitch030504--Wiicompiled_VR…/.github/workflows/package.yml
T

66 lines
2.5 KiB
YAML

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.' }