From c875df49e33ba9b48b42ac1bf563f87a553cd905 Mon Sep 17 00:00:00 2001 From: Matthew Jackson <1085847+MattJackson@users.noreply.github.com> Date: Wed, 5 Aug 2026 21:22:30 -0700 Subject: [PATCH] Scope the qa matrix to the platforms each crate actually supports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first cut ran release-profile tests on all three platforms everywhere, which invented coverage no crate had ever claimed. bdemu is Linux-only — its ci.yml has no macOS or Windows job at all, and its tests call ExitStatus::signal(), which does not exist on Windows, so they do not compile there let alone run. The rest follow the policy ci.yml already set: tests execute on Linux and macOS, Windows compiles them so the cfg(windows) halves still get codegen before release time. That policy is now explicit in qa.yml as a windows-build job rather than implied by which jobs happen to exist. Recorded, not papered over: running the suites on Windows DOES find real defects — autorip has five Windows path-handling failures in mover.rs and freemkv-engine has three tests hardcoding /dev/null. freemkv ships a Windows GUI, so they matter. They are pre-existing rather than 1.6.1 regressions, and fixing them is its own piece of work. Also build the binary before cli-parity.sh. cli-integration.sh builds its own; cli-parity.sh only checks for one and exits 2 with "build it first", so both legs died before running a single case. --- .github/workflows/qa.yml | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index a323a63..e1518a0 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -68,7 +68,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: ['ubuntu-latest', 'macos-latest'] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v5 @@ -109,3 +109,25 @@ jobs: - run: rustup target add x86_64-unknown-linux-gnu - run: cargo clippy --all-targets --target x86_64-unknown-linux-gnu -- -D warnings working-directory: libfreemkv + + # Windows compiles the tests but does not run them, matching the policy + # ci.yml already set. The value here is codegen: the #[cfg(windows)] halves + # of the SCSI transport and platform layers compile on no other runner, so + # without this they are first built at release time. + windows-build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v5 + with: + path: libfreemkv + - uses: actions/checkout@v5 + with: + repository: freemkv/freemkv-unlock + ref: qa + path: freemkv-unlock + - uses: dtolnay/rust-toolchain@1.97.0 + - uses: Swatinem/rust-cache@v2 + with: + workspaces: libfreemkv + - run: cargo build --release --tests + working-directory: libfreemkv