Skip to content

feat: callFable — feature-gate Fable as a worker (off by default) #60

feat: callFable — feature-gate Fable as a worker (off by default)

feat: callFable — feature-gate Fable as a worker (off by default) #60

Workflow file for this run

name: CI
on:
push:
branches: [main]
paths-ignore:
# skip verify/test only for NON-shipped docs — a SHIPPED markdown artifact (skills/**/SKILL.md, commands/*.md) MUST run CI (verify checks dist-sync)
- 'README.md'
- 'CHANGELOG.md'
- 'CONTRIBUTING.md'
- 'PRIVACY.md'
- 'SECURITY.md'
- 'LICENSE'
pull_request:
branches: [main]
paths-ignore:
# skip verify/test only for NON-shipped docs — a SHIPPED markdown artifact (skills/**/SKILL.md, commands/*.md) MUST run CI (verify checks dist-sync)
- 'README.md'
- 'CHANGELOG.md'
- 'CONTRIBUTING.md'
- 'PRIVACY.md'
- 'SECURITY.md'
- 'LICENSE'
permissions:
contents: read
jobs:
gate:
name: gate (${{ matrix.os }} · node ${{ matrix.node }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node: [22, 24] # supported LTS only (24 Active, 22 Maintenance); 18/20 are EOL — bump as the Node LTS schedule moves
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: ${{ matrix.node }}
# Zero-dependency: no install step. Run the same fail-loud gate as a local pre-push,
# cross-platform — verify (dist-sync + repo consistency checks) then the test suite.
# No build step here: rebuilding the dist in CI would mask a stale COMMITTED
# plugin/ — the exact drift verify exists to catch.
- run: node scripts/verify.mjs
- run: node scripts/test.mjs