From 8da2cd48ff8ba0b68ad76dbe8e808404475e7295 Mon Sep 17 00:00:00 2001 From: Paul Calnon Date: Sun, 3 May 2026 19:20:40 -0500 Subject: [PATCH] ci: add macOS leg to unit-tests matrix (P-21) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aligns this repo's unit-tests matrix with cascor / data / cascor-worker / canopy, all of which already include a macOS 3.12 leg. The cross-repo CI audit found data-client, cascor-client, and ml were ubuntu-only, drifting from the rest of the fleet. This repo is pure-Python (HTTP / WebSocket client glue) with no platform-specific code paths, so the macOS leg is a consistency check — it confirms the package installs and tests pass on macOS, catching any inadvertent ``os.path.sep`` / fork-only / Linux-glibc assumption that creeps in via a future refactor. Refs cross-repo CI audit P-21. ml-side macOS coverage is deferred — its tests/ exercise bash scripts whose macOS portability isn't yet validated. --- .github/workflows/ci.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e170ce1..7c0feeb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,13 +119,21 @@ jobs: # Unit Tests: Run unit tests with coverage enforcement # ═══════════════════════════════════════════════════════════════════════════════════════════════ unit-tests: - name: Unit Tests + Coverage (Python ${{ matrix.python-version }}) - runs-on: ubuntu-latest + # P-21 (cross-repo CI audit): align matrix with cascor / data / + # cascor-worker / canopy by adding a macOS leg. Pure-Python HTTP + # client — no platform-specific code paths — so the leg is a + # consistency check rather than a smoke test for new code. + name: Unit Tests + Coverage (Python ${{ matrix.python-version }} on ${{ matrix.os }}) + runs-on: ${{ matrix.os }} needs: [pre-commit] strategy: fail-fast: false matrix: + os: [ubuntu-latest] python-version: ["3.12", "3.13", "3.14"] + include: + - os: macos-latest + python-version: "3.12" steps: - name: Checkout Code