feat(mcp): Server Card + Catalog discovery documents (#107) #101
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Contract tests | |
| # Issue #37 phase 3 (#47): enforce, on every PR, that the CLI's API calls and | |
| # the Python SDK's consumed models stay aligned with the website-mirrored | |
| # public OpenAPI contract. The cli/python *-publish workflows only run on | |
| # release tags, so without this the contract guards would not gate PRs. | |
| on: | |
| pull_request: | |
| paths: | |
| - "docs/openapi/**" | |
| - "packages/cli/src/**" | |
| - "packages/cli/test/openapi-contract.test.mjs" | |
| - "packages/python-sdk/qveris/**" | |
| - "packages/python-sdk/tests/test_openapi_contract.py" | |
| - "packages/js-sdk/src/**" | |
| - "packages/mcp/src/**" | |
| - "packages/mcp/package.json" | |
| - "packages/mcp/package-lock.json" | |
| - "packages/mcp/tsconfig.json" | |
| - ".github/workflows/contract-tests.yml" | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - "docs/openapi/**" | |
| - "packages/cli/src/**" | |
| - "packages/cli/test/openapi-contract.test.mjs" | |
| - "packages/python-sdk/qveris/**" | |
| - "packages/python-sdk/tests/test_openapi_contract.py" | |
| - "packages/js-sdk/src/**" | |
| - "packages/mcp/src/**" | |
| - "packages/mcp/package.json" | |
| - "packages/mcp/package-lock.json" | |
| - "packages/mcp/tsconfig.json" | |
| - ".github/workflows/contract-tests.yml" | |
| permissions: | |
| contents: read | |
| jobs: | |
| cli-contract: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - name: CLI ↔ OpenAPI contract test | |
| working-directory: packages/cli | |
| run: node --test test/openapi-contract.test.mjs | |
| python-contract: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Python SDK ↔ generated-contract test | |
| working-directory: packages/python-sdk | |
| run: | | |
| python -m pip install --quiet pytest "pydantic>=2.0.0" | |
| PYTHONPATH=. python -m pytest tests/test_openapi_contract.py -q | |
| js-sdk-tests: | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/js-sdk | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: "npm" | |
| cache-dependency-path: packages/js-sdk/package-lock.json | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Type check | |
| run: npm run typecheck | |
| - name: JS SDK client tests | |
| run: npm test | |
| mcp-tests: | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/mcp | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: "npm" | |
| cache-dependency-path: packages/mcp/package-lock.json | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Type check | |
| run: npm run typecheck | |
| - name: MCP server tests | |
| run: npm test |