From 14c11177ebeab1fec38053ca6e0759981bc9e7d6 Mon Sep 17 00:00:00 2001 From: stack72 Date: Thu, 30 Apr 2026 22:55:59 +0100 Subject: [PATCH] ci: matrix the test job on Linux + Windows, drop cross-platform-builds workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #1259 stabilized Windows in the test suite (no failures on the on-demand Cross Platform Builds workflow). This promotes Windows into the per-PR test job so regressions are caught at PR time rather than when someone manually triggers a release-time check. Changes: - `ci.yml` test job becomes a `[ubuntu-latest, windows-latest]` matrix with `fail-fast: false`. Each platform runs lint, fmt, check, test, and compile. Status check names will be expanded to `Lint, Test, and Format Check (ubuntu-latest)` and `Lint, Test, and Format Check (windows-latest)` — both will need to be added to branch protection's required checks. - `cross-platform-builds.yml` is deleted. Linux now proxies macOS test semantics (both POSIX) and local dev is macOS so test breakage surfaces before CI. The macOS release compile is already handled by release.yml's cross-compile to x86_64-apple-darwin and aarch64-apple-darwin, making the standalone macOS compile-check redundant. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/ci.yml | 9 ++++- .github/workflows/cross-platform-builds.yml | 39 --------------------- 2 files changed, 8 insertions(+), 40 deletions(-) delete mode 100644 .github/workflows/cross-platform-builds.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3139e7f..fadbd55d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,9 +49,16 @@ jobs: test: name: Lint, Test, and Format Check - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} permissions: contents: read + strategy: + # Surface failures on every platform rather than aborting the whole + # matrix on the first failure — Linux signal stays clean if Windows + # flakes, and vice versa. + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] steps: - name: Checkout code diff --git a/.github/workflows/cross-platform-builds.yml b/.github/workflows/cross-platform-builds.yml deleted file mode 100644 index 9c020fed..00000000 --- a/.github/workflows/cross-platform-builds.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Cross Platform Builds - -on: - workflow_dispatch: - -jobs: - build: - name: Cross Platform Build (${{ matrix.os }}) - runs-on: ${{ matrix.os }} - permissions: - contents: read - strategy: - fail-fast: false - matrix: - os: [windows-latest, macos-latest] - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup Deno - uses: denoland/setup-deno@v2 - with: - deno-version: v2.x - - - name: Run deno lint - run: deno lint - - - name: Run deno fmt --check - run: deno fmt --check - - - name: Run deno check - run: deno task check - - - name: Run deno test - run: deno task test - - - name: Compile binary - run: deno task compile