ci: move required builds to Linux and preserve runtime hybrid - #331
Merged
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Owner
Author
|
Fresh exact-head audit on
No material audit finding identified. Final acceptance still requires both Linux matrix jobs and |
This was referenced Aug 16, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objective
Make ordinary OTClient CI Linux-only on GitHub-hosted runners, including a bounded headless startup smoke of the built Linux client, while preserving Synology/self-hosted capacity for specialized real runtime/LAN/display/input/persistent-session work.
Changes
reusable-build-linux.ymlmatrix;reusable-build-windows.yml;Client Startup Smoke - Linuxjob after the Linux build;linux-linux-releaseartifact, verify shared-library resolution, and startotclientunderXvfbwith software GL, null OpenAL output, and an isolated--user-dir;pull_request.closedcreate a no-work run in the same CI concurrency group, so a closed/superseded PR cancels any older in-progress build instead of leaving orphaned runner demand;Runner boundary
GitHub-hosted: static/workflow/Lua validation, unit/integration tests, Linux build, artifact dependency validation, bounded headless startup smoke.
Synology/self-hosted: persistent OTClient session, real display/input ownership, login/walking/clicking, LAN/runtime integration, long-lived observation and direct physical gameplay evidence.
The GitHub headless smoke must not be treated as a replacement for Synology physical runtime E2E.
Coordination
reusable-build-linux.ymlas owned, so this PR deliberately adds the smoke inci.ymlwithout modifying that reusable workflow.Validation contract
CI / Requiredmust require both build and startup smoke when compile scope is true;The pinned vcpkg baseline's
x64-linuxtriplet links vcpkg libraries statically, so the downloaded release artifact does not require a second vcpkg installation on the smoke runner; only system X/GL/OpenAL runtime packages are installed there.Task:
OTC-20260816-linux-ci-hybrid.