Skip to content

feat: v1.0 production polish — in-process MCP, demo command, watch co… #78

feat: v1.0 production polish — in-process MCP, demo command, watch co…

feat: v1.0 production polish — in-process MCP, demo command, watch co… #78

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
node-quality:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: ["20", "22"]
steps:
- uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 9.15.0
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Typecheck
run: pnpm typecheck
- name: Lint
run: pnpm lint
- name: Test
run: pnpm test
package-artifacts:
runs-on: ubuntu-latest
needs: node-quality
steps:
- uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 9.15.0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test
run: pnpm build && pnpm check:artifacts
smoke-cross-platform:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 9.15.0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Smoke test CLI entrypoints
run: |
node packages/cli/dist/cli.js --help
node packages/mcp/dist/cli.js --help
python-sdk:
runs-on: ubuntu-latest
needs: package-artifacts
steps:
- uses: actions/checkout@v6
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Install Python tooling
working-directory: packages/python-sdk
run: |
python -m pip install --upgrade pip
python -m pip install -e .[dev] build twine
- name: Test Python SDK
working-directory: packages/python-sdk
run: python -m pytest
- name: Build Python SDK
working-directory: packages/python-sdk
run: python -m build
- name: Validate Python distributions
working-directory: packages/python-sdk
run: |
twine check dist/*
python -m pip install --force-reinstall dist/*.whl
python -c "import browseragentprotocol; print(browseragentprotocol.__version__)"
coverage:
runs-on: ubuntu-latest
needs: node-quality
steps:
- uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v5
with:
version: 9.15.0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Test with coverage
run: pnpm test:coverage
- name: Upload coverage
if: always()
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: coverage/
retention-days: 14