Skip to content

Add synthetic recompilation CI workflow - #161

Merged
patchzyy merged 1 commit into
mainfrom
ci-test-recompilation
Sep 5, 2026
Merged

patchzyy merged 1 commit into
mainfrom
ci-test-recompilation

Conversation

@patchzyy

@patchzyy patchzyy commented Sep 5, 2026 •

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • Tests

    • Added automated recompilation checks for Windows builds.
    • Added validation that translates, compiles, links, and verifies the complete runtime.
    • Added checks for expected functions, generated configuration, and the final executable.
    • Expanded toolchain validation across direct compiler and CMake/Ninja builds.
  • Chores

    • Updated packaging workflows to wait for successful recompilation checks before release jobs run.
    • Improved isolation, dependency handling, and error reporting during build validation.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 83a832d2-c5b9-4020-a122-6bb79d3429ef

📥 Commits

Reviewing files that changed from the base of the PR and between 5d67b22 and f9ce1e7.

📒 Files selected for processing (5)
  • .github/workflows/build.yml
  • .github/workflows/package.yml
  • .github/workflows/recomp-test.yml
  • Launcher/Test-Recompilation.ps1
  • Launcher/prepare-portable-tools.sh

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The change adds a synthetic recompilation test, updates portable-tool validation naming, and runs the test from build and packaging workflows. The release job now waits for recompilation to complete.

Changes

Synthetic recompilation validation

Layer / File(s) Summary
Portable tool validation
Launcher/prepare-portable-tools.sh
Renames the validation workspace and CMake test target from smoke to test.
Synthetic runtime recompilation
Launcher/Test-Recompilation.ps1
Creates synthetic PowerPC input, translates it, validates function metadata, generates build inputs, and compiles WiiCompiled.exe on Windows.
Build and packaging integration
.github/workflows/recomp-test.yml, .github/workflows/build.yml, .github/workflows/package.yml
Adds the reusable recompilation workflow and invokes it from build and packaging workflows. The release job requires recompilation, Linux packaging, and Windows packaging.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to f9ce1

This adds a synthetic Windows recompilation check and makes build and packaging completion depend on it. The supplied change context identifies no remaining correctness, release, or runtime risk.

Sequence Diagram(s)

sequenceDiagram
  participant BuildWorkflow
  participant RecompilationWorkflow
  participant TestRecompilation
  participant WindowsToolchain
  BuildWorkflow->>RecompilationWorkflow: Invoke reusable workflow
  RecompilationWorkflow->>WindowsToolchain: Prepare .NET and portable dependencies
  RecompilationWorkflow->>TestRecompilation: Run with parallelism 3
  TestRecompilation->>WindowsToolchain: Translate, configure, compile, and link
  WindowsToolchain-->>TestRecompilation: Produce WiiCompiled.exe
Loading

Suggested reviewers: theofficialgman

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding a synthetic recompilation CI workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci-test-recompilation

Comment @coderabbitai help to get the list of available commands.

@patchzyy
patchzyy merged commit 1c0a3ed into main Sep 5, 2026
3 checks passed
@patchzyy
patchzyy deleted the ci-test-recompilation branch September 5, 2026 21:00
patchzyy added a commit that referenced this pull request Sep 13, 2026
* macos: add x86_64 Intel support

* aurora: construct texture replacement index entries

* Switch back to LLVM 22 so build can succeed on at least some systems (#141)

two upstream LLVM bugs currently prevent building on some of the newest distros. There is no current LLVM release that works on them so we are pending fixes from LLVM
#136

* Fix GC Pocket+ rumble stop handling (#148)

* macos: package universal setup tools

* ci: build macOS input expression tests

* runtime: Do not force 14.0 minimum anymore

new minimum is 12.0

* Update network_socket.cpp

* fix(macos): increase guest fiber stack size (#154)

* v0.2.28

* Update settings_overlay.cpp

* macos: support older libc++ algorithms

* Load console identity from NAND setting.txt (#164)

* Add synthetic recompilation CI workflow (#161)

* version

* macos: allow undefined MTLLogStateDescriptor for older SDKs

* tests: deflake input expression timing window test

* import setting.txt (#169)

* import setting.txt

* coderabbit ugh

* Treat empty MKW save as missing rather than corrupt (#168)

* treat empty mkw save as missing

first-run format zero-fills rksys.dat before any real save; a quit before
the first save left an all-zero file that read back as corrupt and trapped
the user in a delete/recreate loop. read opens now treat an all-zero
rksys.dat as absent (a real save always begins with the RKSD0006 header),
so the game recreates it from scratch. also ignore native build output.

* shorten

* I dont really want to change this to be honest.

* extra safety

---------

Co-authored-by: patchzyy <64382339+patchzyy@users.noreply.github.com>

* version 0.2.30

* csnum fix

* update

* build: Fix mac tests

* translator: emit null statement after continuation labels for C++17 compatibility

* review fixes

---------

Co-authored-by: theofficialgman <28281419+theofficialgman@users.noreply.github.com>
Co-authored-by: Cristian Boehm <75502884+GalaxisBeast@users.noreply.github.com>
Co-authored-by: patchzyy <64382339+patchzyy@users.noreply.github.com>
Co-authored-by: Wubbzee <41394708+JGM01@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant