From f86c5d446df8290b98c2b66a31ae30a0108a51c4 Mon Sep 17 00:00:00 2001 From: raptorreplica Date: Sun, 11 Oct 2026 18:00:54 +1100 Subject: [PATCH] Verify the tracked Windows runtime in native CI --- .github/workflows/windows.yml | 18 ++++++++++++++++++ docs/resume-checkpoint.md | 8 ++++++-- docs/windows-build.md | 9 +++++++-- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 76f4fd7f..1cda4b98 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -9,11 +9,13 @@ on: - "mods/**" - "data/**" - "art/**" + - "bin/**" - "Cargo.toml" - "Cargo.lock" - "run.cmd" - "runtime-manifest.json" - ".gitattributes" + - "runtime-windows-manifest.json" - "tools/assemble_windows.py" - "tools/assemble_runtime.py" - ".github/workflows/windows.yml" @@ -46,6 +48,22 @@ jobs: Expand-Archive "$env:RUNNER_TEMP\SDL2.zip" "$env:RUNNER_TEMP\sdl2" - name: Run portable simulation, mod and Windows save tests run: cargo test --locked --no-default-features + - name: Check the included Windows executable and launcher + shell: pwsh + run: | + $package = $env:GITHUB_WORKSPACE + $manifest = Get-Content "$package\runtime-windows-manifest.json" -Raw | ConvertFrom-Json + foreach ($entry in $manifest.files.PSObject.Properties) { + $actual = (Get-FileHash (Join-Path $package $entry.Name) -Algorithm SHA256).Hash.ToLower() + if ($actual -ne $entry.Value) { throw "Bundled Windows hash mismatch: $($entry.Name)" } + } + Set-Location $env:RUNNER_TEMP + & "$package\run.cmd" --verify-assets + if ($LASTEXITCODE -ne 0) { throw "Included Windows launcher failed" } + $env:SDL_VIDEODRIVER = "dummy" + $env:SDL_AUDIODRIVER = "dummy" + & "$package\run.cmd" --profile-root "$env:RUNNER_TEMP\bundled-profile" --smoke-frames 32 --preview-mission base:sector_1_wave_1 + if ($LASTEXITCODE -ne 0) { throw "Included Windows SDL gameplay failed" } - name: Build and package Windows desktop run: python tools/assemble_windows.py --target x86_64-pc-windows-msvc --sdl2-dir "$env:RUNNER_TEMP\sdl2\SDL2-2.32.10" --zip dist/RustRaptor-windows-x86_64.zip - name: Validate packaged data, HD artwork, mods and SDL gameplay diff --git a/docs/resume-checkpoint.md b/docs/resume-checkpoint.md index 17fee39a..2c8c1019 100644 --- a/docs/resume-checkpoint.md +++ b/docs/resume-checkpoint.md @@ -34,8 +34,12 @@ the relocation. See [repository layout](repository.md). The exported folder launches via `run.cmd` from `/tmp` after relocation to a path with spaces and Unicode; all hashes/mods validate. HD1080p gameplay, original4:3 intro and music-muted SDL sound-effect capture pass. Local - evidence is in `.reference/windows/`; native Windows CI checks the pushed - source at [the build run](https://github.com/Quintine/RustRaptor/actions/runs/38119440288). + evidence is in `.reference/windows/`. Native Windows CI also passes all279 + portable tests plus MSVC desktop/exported-folder checks at + [the build run](https://github.com/Quintine/RustRaptor/actions/runs/38119440288). + The Windows executable additionally runs Iron Coast1 with all22mods enabled + and captures its custom music. Hardware display/audio/controller checks + remain manual; automated runs use SDL dummy drivers. See [Windows build and validation](windows-build.md). The tracked catalog remains the 340-frame reviewed snapshot while broader HD review continues. - Packaged executable now includes the `c0a6fd3` reviewed source checkpoint, diff --git a/docs/windows-build.md b/docs/windows-build.md index b37e1495..8804e9e6 100644 --- a/docs/windows-build.md +++ b/docs/windows-build.md @@ -73,5 +73,10 @@ original intro retains its 4:3 viewport with 240-pixel black side borders. SDL captured three seconds of 44.1 kHz stereo audio; a separate capture with music muted verified nonzero original sound effects (251,682 nonzero samples). -Wine checks exercise the Windows executable from Linux; native Windows -builds and runtime checks are also configured in the workflow above. +The [native Windows CI run](https://github.com/Quintine/RustRaptor/actions/runs/38119440288) +also passed all 279 portable tests, built the MSVC desktop release and +validated the exported folder's launcher, catalog, HD art, all mods and SDL +gameplay from a path with spaces and Unicode. The local GNU build additionally +ran Iron Coast mission 1 at 1080p with all 22 mods enabled and captured its +custom music. Both runs used SDL's dummy output drivers for automation; +physical Windows display, audio and controller hardware remain untested.