Skip to content

Commit ce8a2bf

Browse files
committed
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.
1 parent e7a3aba commit ce8a2bf

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: ci
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
jobs:
9+
test:
10+
name: test (${{ matrix.os }})
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
os: [ubuntu-latest, macos-latest, windows-latest]
15+
runs-on: ${{ matrix.os }}
16+
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
21+
- name: Setup Node
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: "20"
25+
cache: "npm"
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
30+
- name: Lint (tsc --noEmit)
31+
run: npm run lint
32+
33+
- name: Test
34+
run: npm test
35+
36+
- name: Build
37+
run: npm run build

0 commit comments

Comments
 (0)