sdk-release.yml now validates the whole consumer chain after the SDKs are
published, using only the real release artifacts:
- consumer-{win32,linux,macosx}: download the host SDK zip like an end user,
eve get android, eve build android (APK content + EVEngineActivity launcher
checks), eve package <host>, then actually run the packaged game headless
and require the EVE_CI_GAME_OK startup marker (stdout is unbuffered).
- Cross-packaging per the promised matrix: linux -> win32, macosx ->
win32 + linux. Unsupported combos are simply not in the matrix.
- run-win32-cross / run-linux-cross: packages built on foreign hosts are
downloaded, extracted and run on the target platform (SwiftShader / Lavapipe)
with the marker as a hard gate.
- run-android: installs the built APK on an arm64 emulator (macOS arm64
runner), launches EVEngineActivity and greps logcat. Best-effort
(continue-on-error) for now, per the agreed soft-gate policy.
- ios-sim: builds the game app for iphonesimulator from the release source,
boots a simulator, installs/launches and greps the marker. Best-effort.
New Makefile target build/ios-sim-debug builds the game app for the
simulator (no signing); consumer-test.sh is the shared per-host flow.
The win32 SDK runtime-bundle script now also resolves the VS redist
edition/version layout and falls back to the system Vulkan loader.