ci: preserve upstream checks and replace fork CI with one smoke test - #5
Merged
Merged
Conversation
Retain all five inherited workflows byte-for-byte. Replace four fork-specific workflows and seven extra jobs with one dependency-free C++ session lifecycle smoke test, a two-minute Ubuntu job and superseded-run cancellation. Remove the redundant SDK, source-contract, native application and packaging test harnesses rather than hiding them behind a single runner. Leave production sources, dependency pins, CMake and platform build helpers unchanged. Update controller documentation to explain the narrower coverage and local source builds instead of automatic application artifacts. Validated the exact smoke command without dependencies; GCC, Clang and optimized NDEBUG builds pass. Eight disposable mutation controls fail as expected. YAML, Bash syntax, baseline blob checks and whitespace checks pass. Complete native applications and current-head GitHub Actions are not claimed validated.
Main advanced to 94937a0 when automatic-connection PR #4 merged during publication of this cleanup. Preserve its complete production source tree, SDK pin, controller documentation and hardware acceptance guidance. Resolve workflow/test conflicts in favor of the requested single-test policy, including removing the four newly merged test files. Adapt the same dependency-free lifecycle scenario to the current session API. Exercise failed save, opt-in, explicit Disconnect, restart, opt-out preserving input and terminal shutdown without an additional test or runner. GCC, Clang and optimized NDEBUG builds pass; all ten disposable mutation controls are rejected. Five inherited workflows remain byte-identical, and the final diff against current main is limited to 18 CI/test/documentation paths. No native application or current-head GitHub CI pass is claimed.
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.
Result: upstream unchanged, one extra test, six-second hosted job
Current head:
aad69fc33f87bde8f00757998b3af56401e2cbf9.Current main incorporated:
94937a02a1db83c30904bfedd66012c81144e8d1.Tree:
9b03911be1f787440e79abd807df7f676925a781.The new smoke job passed for this exact head: run 35480798887, job
105998111176. GitHub reports execution from 01:12:50 to 01:12:56 UTC on September 20, 2026: six seconds including checkout, plus approximately three seconds between job creation and start. The compile-and-run step begins and ends within the same reported second. This is one observed run, not a latency guarantee or billed-minute measurement.The unchanged upstream Build check and translation workflow were still running at the latest check; their results are not assumed successful. No merge, release or manual full-application dispatch was performed.
The remaining job has a two-minute timeout and a ten-second execution limit for the smoke binary. It runs once per pull-request update, or on manual request. There is no platform matrix, dependency/submodule checkout, package installation, SDK build, application build, extra push run, scheduled run or aggregate test runner. Superseded runs are cancelled.
This does not make all Cemu CI two minutes. Upstream's build and translation workflows retain their original triggers, jobs, matrices, caches and uploads. The table describes only additional fork work; no dollar savings are inferred.
Upstream and production code remain unchanged
All five inherited workflow blobs match
cemu-project/Cemuand are retained byte-for-byte:build.yml,build_check.yml,deploy_release.yml,determine_release_version.ymlandgenerate_pot.yml.No production source, upstream test, dependency gitlink, CMake configuration, application build helper, license or runtime guard changes relative to current main. The upstream information section of the README is also unchanged.
Main advanced while this PR was being opened: automatic-connection #4 merged as
94937a0. The original conflict has been reconciled by incorporating that main commit without force-pushing. All merged automatic-connection production code, its SDK pin, user-facing controller guidance and hardware acceptance instructions are preserved. The four additional test files from #4 are removed along with the earlier fork suite, keeping the requested one-test limit.The one retained test
tests/switch2kit/smoke.cppis one 85-line C++ lifecycle scenario including the real, unchangedSwitch2KitSession.h. It controls only the external host and save-callback boundaries. It exercises default-off startup, failed discovery and explicit retry, an active session surviving failed rescan, failed-save consent preservation, automatic opt-in, Disconnect suppressing polling/restart, explicit restart, opt-out preserving live input, and terminal shutdown.It compiles once and executes once with the system C++20 compiler. It requires no external dependencies, does not enforce source text/prose, and retains its checks under
NDEBUG. It does not load a real configuration file or test an actual controller.The old mapping/identity/rollback, configuration-file, source-wiring, desktop configuration/CRT and SDK host-file harnesses are deleted, not hidden behind a wrapper or moved into a manual matrix. Three extra workflows are deleted;
native-switch2kit.ymlbecomes the small smoke workflow. The final diff against current main is 18 files, 130 added lines and 1,537 deleted lines.Coverage and distribution tradeoff
This smoke scenario does not replace full enabled Cemu/SDL/SDK integration, mappings, configuration-file persistence, packaging/runtime relocation, GUI startup, Mac/Windows compatibility or physical-controller qualification. The unchanged upstream builds keep
ENABLE_SWITCH2KITdisabled by default. SDK testing belongs in the SDK repository; an SDK pass alone is not evidence of an enabled Cemu application working.Controller-enabled application artifacts will no longer be generated automatically. The existing local macOS/Linux/Windows build helpers remain, and README/controller instructions now point to them rather than removed workflows or merged implementation branches. Existing artifacts are not deleted and retain their original expiration. Validate the exact enabled build on its target platform before distributing it. No new production release or hardware acceptance is claimed.
Validation
bf5667104bc5133546aaff53a28799bcfe57f892, which matches the newly merged main tree. The current production session header was also checked directly against GitHub.-O2 -DNDEBUGbuild passes with checks active.git diff --checkpasses.The branch contains the cleanup commit plus one main-reconciliation commit. No history was rewritten, repository/billing settings were changed, or existing artifacts were deleted.