Scope the qa matrix to the platforms each crate actually supports
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.
This commit is contained in:
@@ -68,7 +68,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: ['ubuntu-latest', 'macos-latest']
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
@@ -109,3 +109,25 @@ jobs:
|
|||||||
- run: rustup target add x86_64-unknown-linux-gnu
|
- run: rustup target add x86_64-unknown-linux-gnu
|
||||||
- run: cargo clippy --all-targets --target x86_64-unknown-linux-gnu -- -D warnings
|
- run: cargo clippy --all-targets --target x86_64-unknown-linux-gnu -- -D warnings
|
||||||
working-directory: libfreemkv
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user