From ce3ba6d5277726c491b8b8390705753f665830fc Mon Sep 17 00:00:00 2001 From: Kayshen-X Date: Sun, 5 Jul 2026 22:48:02 +0800 Subject: [PATCH] ci: serialize op-host-desktop tests in multiplatform Windows job Mirror the rust-check.yml fix into the cross-platform host-test step: the op-host-desktop test binary segfaults on the Windows runner when its native (skia/DirectWrite) tests run across parallel test-worker threads. Run that crate single-threaded here too. --- .github/workflows/rust-multiplatform.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust-multiplatform.yml b/.github/workflows/rust-multiplatform.yml index 1f0a6ec7d..33e246dd7 100644 --- a/.github/workflows/rust-multiplatform.yml +++ b/.github/workflows/rust-multiplatform.yml @@ -116,7 +116,13 @@ jobs: run: cargo test --workspace --target ${{ matrix.target }} - name: Test (host, macOS / Windows) if: matrix.cross == false && matrix.check_only != true && runner.os != 'Linux' - run: cargo test --workspace --target ${{ matrix.target }} + # op-host-desktop's tests build native NativeBackends (skia / + # DirectWrite fonts); across cargo's parallel test-worker threads this + # segfaults on the Windows runner (STATUS_ACCESS_VIOLATION). Split it + # out and serialize with --test-threads=1 (matches rust-check.yml). + run: | + cargo test --workspace --exclude op-host-desktop --target ${{ matrix.target }} + cargo test -p op-host-desktop --target ${{ matrix.target }} -- --test-threads=1 # Desktop binary artifact upload is intentionally not wired here yet. # The real desktop binary lives in the `op-host-desktop` crate; a # build + upload step can be added once release packaging is finalized.