Ports the CLI, TUI, and launcher from v1.5 into v2 behind a single `mcp-inspector` entrypoint (launcher → web/cli/tui). Includes the `mcp-inspector --web --dev` launcher fix (Vite alias resolution + prod-server double-start), the root `postinstall` install cascade with simplified CI, and spec/AGENTS docs (no-workspaces rationale, Development setup). Closes #1246. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
70 lines
2 KiB
YAML
70 lines
2 KiB
YAML
name: Run install, format, lint, build, and test on every push
|
|
|
|
on: [push]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '20.x'
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies (root + all clients)
|
|
# The root postinstall (scripts/install-clients.mjs) cascades
|
|
# `npm install` into clients/web, clients/cli, clients/tui, and
|
|
# clients/launcher, so this single step sets up every client.
|
|
run: npm install
|
|
|
|
- name: Check formatting
|
|
working-directory: ./clients/web
|
|
run: npm run format:check
|
|
|
|
- name: Run linter
|
|
working-directory: ./clients/web
|
|
run: npm run lint
|
|
|
|
- name: Run Build
|
|
working-directory: ./clients/web
|
|
run: npm run build
|
|
|
|
- name: Run tests with coverage
|
|
working-directory: ./clients/web
|
|
run: npm run test:coverage
|
|
|
|
- name: Run CLI tests
|
|
working-directory: ./clients/cli
|
|
run: npm run test
|
|
|
|
- name: Run TUI tests
|
|
working-directory: ./clients/tui
|
|
run: npm run test
|
|
|
|
- name: Build CLI, TUI, and launcher
|
|
run: npm run build:cli && npm run build:tui && npm run build:launcher
|
|
|
|
- name: Smoke test launcher
|
|
run: |
|
|
node clients/launcher/build/index.js --help
|
|
node clients/launcher/build/index.js --cli --help
|
|
node clients/launcher/build/index.js --tui --help
|
|
|
|
- name: Cache Playwright browsers
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/ms-playwright
|
|
key: playwright-${{ runner.os }}-${{ hashFiles('clients/web/package-lock.json') }}
|
|
|
|
- name: Install Playwright browsers
|
|
working-directory: ./clients/web
|
|
run: npx playwright install --with-deps chromium
|
|
|
|
- name: Run Storybook play-function tests
|
|
working-directory: ./clients/web
|
|
run: npm run test:storybook
|