Verify the tracked Windows runtime in native CI
This commit is contained in:
1 parent
25bf21349a
commit
f86c5d446d
3 files changed
+31
-4
No files matched your search
@@ -9,11 +9,13 @@ on:
|
|||||||
- "mods/**"
|
- "mods/**"
|
||||||
- "data/**"
|
- "data/**"
|
||||||
- "art/**"
|
- "art/**"
|
||||||
|
- "bin/**"
|
||||||
- "Cargo.toml"
|
- "Cargo.toml"
|
||||||
- "Cargo.lock"
|
- "Cargo.lock"
|
||||||
- "run.cmd"
|
- "run.cmd"
|
||||||
- "runtime-manifest.json"
|
- "runtime-manifest.json"
|
||||||
- ".gitattributes"
|
- ".gitattributes"
|
||||||
|
- "runtime-windows-manifest.json"
|
||||||
- "tools/assemble_windows.py"
|
- "tools/assemble_windows.py"
|
||||||
- "tools/assemble_runtime.py"
|
- "tools/assemble_runtime.py"
|
||||||
- ".github/workflows/windows.yml"
|
- ".github/workflows/windows.yml"
|
||||||
@@ -46,6 +48,22 @@ jobs:
|
|||||||
Expand-Archive "$env:RUNNER_TEMP\SDL2.zip" "$env:RUNNER_TEMP\sdl2"
|
Expand-Archive "$env:RUNNER_TEMP\SDL2.zip" "$env:RUNNER_TEMP\sdl2"
|
||||||
- name: Run portable simulation, mod and Windows save tests
|
- name: Run portable simulation, mod and Windows save tests
|
||||||
run: cargo test --locked --no-default-features
|
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
|
- 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
|
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
|
- name: Validate packaged data, HD artwork, mods and SDL gameplay
|
||||||
|
|||||||
@@ -34,8 +34,12 @@ the relocation. See [repository layout](repository.md).
|
|||||||
The exported folder launches via `run.cmd` from `/tmp` after relocation to
|
The exported folder launches via `run.cmd` from `/tmp` after relocation to
|
||||||
a path with spaces and Unicode; all hashes/mods validate. HD1080p gameplay,
|
a path with spaces and Unicode; all hashes/mods validate. HD1080p gameplay,
|
||||||
original4:3 intro and music-muted SDL sound-effect capture pass. Local
|
original4:3 intro and music-muted SDL sound-effect capture pass. Local
|
||||||
evidence is in `.reference/windows/`; native Windows CI checks the pushed
|
evidence is in `.reference/windows/`. Native Windows CI also passes all279
|
||||||
source at [the build run](https://github.com/Quintine/RustRaptor/actions/runs/38119440288).
|
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
|
See [Windows build and validation](windows-build.md). The tracked catalog
|
||||||
remains the 340-frame reviewed snapshot while broader HD review continues.
|
remains the 340-frame reviewed snapshot while broader HD review continues.
|
||||||
- Packaged executable now includes the `c0a6fd3` reviewed source checkpoint,
|
- Packaged executable now includes the `c0a6fd3` reviewed source checkpoint,
|
||||||
|
|||||||
@@ -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
|
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).
|
music muted verified nonzero original sound effects (251,682 nonzero samples).
|
||||||
|
|
||||||
Wine checks exercise the Windows executable from Linux; native Windows
|
The [native Windows CI run](https://github.com/Quintine/RustRaptor/actions/runs/38119440288)
|
||||||
builds and runtime checks are also configured in the workflow above.
|
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.
|
||||||
Reference in new issue
Block a user