From 5bde144b12476011b047f4c5cec84a5dab53ac86 Mon Sep 17 00:00:00 2001 From: DuProcess <273172371+DuProcess@users.noreply.github.com> Date: Thu, 16 Jul 2026 20:27:40 -0400 Subject: [PATCH] Run macOS client tests in CI --- .github/workflows/ci.yml | 17 +++++++++++++++++ tests/release_scripts.rs | 14 ++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3db094a..449c537 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,6 +54,23 @@ jobs: if: steps.nightly.outcome != 'success' || steps.install.outcome != 'success' run: echo "cargo-fuzz / nightly toolchain unavailable; skipped fuzz smoke run." + macos-client: + strategy: + matrix: + include: + - os: macos-14 + name: macos-aarch64 + - os: macos-13 + name: macos-x86_64 + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Build macOS client + run: cargo build --release + - name: Test macOS client + run: cargo test --all-targets + windows-client: runs-on: windows-latest steps: diff --git a/tests/release_scripts.rs b/tests/release_scripts.rs index 247b06a..3a80a07 100644 --- a/tests/release_scripts.rs +++ b/tests/release_scripts.rs @@ -68,6 +68,20 @@ fn release_gates_test_all_targets() { assert!(ci.contains("run: cargo clippy --all-targets -- -D warnings")); assert!(ci.contains("run: cargo test --all-targets")); assert!(ci.contains("run: sh scripts/tui-harness.sh")); + let macos_client = ci + .split("macos-client:") + .nth(1) + .and_then(|tail| tail.split("\n windows-client:").next()) + .expect("macos-client job"); + assert!(macos_client.contains("name: macos-aarch64")); + assert!(macos_client.contains("name: macos-x86_64")); + assert!(macos_client.contains("os: macos-14")); + assert!(macos_client.contains("os: macos-13")); + assert!(macos_client.contains("name: Test macOS client")); + assert!( + macos_client.contains("run: cargo test --all-targets"), + "macOS CI must run Rust tests, not only release packaging" + ); let windows_client = ci .split("windows-client:") .nth(1)