107 lines
2.5 KiB
YAML
107 lines
2.5 KiB
YAML
# Run the root validation commands on every pull request.
|
|
# Command list is duplicated in tools/ci-check.mjs — keep them identical.
|
|
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
# Cancel an in-flight run when the PR gets new commits.
|
|
concurrency:
|
|
group: ci-${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: pnpm/action-setup@v6
|
|
with:
|
|
version: 11.25.0
|
|
run_install: false
|
|
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version-file: '.node-version'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Run all package tests
|
|
run: pnpm test
|
|
|
|
# The MCP test suite regenerates the action catalog (catalog.ts + the
|
|
# catalog.json the docs site consumes). Fail if the committed snapshot
|
|
# drifted from the live specs — keeps the API docs from going stale.
|
|
- name: Verify generated action catalog is up to date
|
|
run: node tools/check-action-catalog.mjs
|
|
|
|
typecheck:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: pnpm/action-setup@v6
|
|
with:
|
|
version: 11.25.0
|
|
run_install: false
|
|
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version-file: '.node-version'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Type check all packages
|
|
run: pnpm typecheck
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: pnpm/action-setup@v6
|
|
with:
|
|
version: 11.25.0
|
|
run_install: false
|
|
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version-file: '.node-version'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Build release inputs
|
|
run: pnpm run build:all
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: pnpm/action-setup@v6
|
|
with:
|
|
version: 11.25.0
|
|
run_install: false
|
|
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version-file: '.node-version'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Lint managed source files
|
|
run: pnpm lint
|