Skip to content

CI: replace bogus Compile-and-Release with real Windows tests#13

Merged
Jordan231111 merged 3 commits into
mainfrom
ci/useful-tests
May 31, 2026
Merged

CI: replace bogus Compile-and-Release with real Windows tests#13
Jordan231111 merged 3 commits into
mainfrom
ci/useful-tests

Conversation

@Jordan231111

Copy link
Copy Markdown
Owner

What

The old .github/workflows/build-and-release.yml ("Compile and Release") was bogus and a latent hazard:

  • It g++-compiled Magisk.cpp, which was deleted from the repo — so every run failed at the compile step.
  • On every tags: '*' push it then ran a softprops/action-gh-release step that would have overwritten the release name/body and uploaded a nonexistent magisk.exe / NewblueStacksRoot.cmd. (It only ever spared the releases because it died at compile first.)

Instead

A focused, genuinely useful tests.yml that runs on push/PR to main (+ manual), on windows-latest, invoking each suite via powershell -File — the same Windows PowerShell 5.1 the .cmd uses:

  1. tests/Check-Embedded-Sync.ps1 (new) — fails if the engine/orchestrator embedded in blueStackRoot.cmd drift from tools/bsr_engine.ps1 / tools/bsr_magisk.ps1 (the single-file build's NOT WORKING #1 silent failure mode — forgetting tools/reembed.ps1).
  2. tests/Run-Tests.ps1 — engine: integrity patch, .bstk disk-mode, conf root flags, su round-trip, bootstrap (28).
  3. tests/Run-Resolve-Tests.ps1 — nothing-hardcoded + adb-port resolution (22).

No compiling, no auto-releasing — releases are cut by hand. All three pass locally (exit 0); the ext4/debugfs tier in Run-Tests auto-skips on CI (no mke2fs).

The old build-and-release.yml g++-compiled Magisk.cpp (deleted, so it
always failed) and, on tag push, ran a release step that would clobber
hand-cut releases with nonexistent magisk.exe / NewblueStacksRoot.cmd.

Replace it with .github/workflows/tests.yml (push/PR to main + manual):
runs tests/Run-Tests.ps1 and tests/Run-Resolve-Tests.ps1 on
windows-latest via 'powershell -File' (Windows PowerShell 5.1, exactly
as the .cmd does), and a new tests/Check-Embedded-Sync.ps1 that fails if
the engine/orchestrator embedded in blueStackRoot.cmd drift from
tools\bsr_engine.ps1 / tools\bsr_magisk.ps1. No compiling, no releasing.
On CI $env:TEMP is the 8.3 short form (C:\Users\RUNNER~1\...); the
engine resolves the on-disk Root.vhd and returns the long path, so the
exact-string VHD assertion mismatched purely on short-vs-long. Expand the
fake DataDir root to its long form (GetLongPathName) at creation so all
expected paths match what the engine returns. No product change.
@Jordan231111 Jordan231111 merged commit 2eb72ea into main May 31, 2026
1 check passed
@Jordan231111 Jordan231111 deleted the ci/useful-tests branch May 31, 2026 14:21
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