Skip to content
Prev Previous commit
ci: add three-OS test matrix (ubuntu, macos, windows)
Until now tests only ran as part of the publish-npm job in
release-binary.yml, which only fires on tag pushes. PRs and commits
to main got no automated verification. On the feature branch for
native Windows support we've been running the full suite manually on
an Azure Win11 VM — this workflow automates that loop.

Matrix:
- ubuntu-latest  (primary dev platform, regression guard)
- macos-latest   (ARM64 Apple Silicon coverage)
- windows-latest (native Windows regression guard — the whole reason
                  this file exists)

Each job: checkout, setup Node 20, npm ci, npm run lint (tsc --noEmit),
npm test, npm run build. fail-fast: false so one platform failing
doesn't hide regressions on the others.
  • Loading branch information
George-iam committed Apr 17, 2026
commit ce8a2bfbe9e9199246853e99a53af0c5d099d428
37 changes: 37 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: ci

on:
push:
branches: [main]
pull_request:

jobs:
test:
name: test (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Lint (tsc --noEmit)
run: npm run lint

- name: Test
run: npm test

- name: Build
run: npm run build
Loading