chore(deps): modernize CI actions and runtime deps to latest stable #6
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| # Heavy ML deps stay out of the install path (no [ml] extra) so CI is fast. | |
| # Coverage is not gated yet; thresholds attach as schema/ + analyzers/ land. | |
| jobs: | |
| backend: | |
| name: Backend (lint, types, boundaries, tests) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up uv (pinned) + Python 3.12 | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: "0.9.9" | |
| python-version: "3.12" | |
| enable-cache: true | |
| - run: uv sync --frozen | |
| - run: uv run ruff check . | |
| - run: uv run ruff format --check . | |
| - run: uv run mypy | |
| - run: uv run lint-imports | |
| - run: uv run pytest -n auto | |
| ui: | |
| name: UI (lint, types, build, tests) | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ui | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| # pnpm/action-setup runs with the runner CWD (repo root), not the | |
| # job-level working-directory, so we point at ui/package.json | |
| # explicitly. Version is read from its "packageManager" field. | |
| package_json_file: ui/package.json | |
| - name: Set up Node 22 LTS | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: ui/.node-version | |
| cache: pnpm | |
| cache-dependency-path: ui/pnpm-lock.yaml | |
| - run: pnpm install --frozen-lockfile | |
| - run: pnpm lint | |
| - run: pnpm typecheck | |
| - run: pnpm build | |
| - run: pnpm test | |
| - name: API↔UI contract drift (regenerate types, fail on drift) | |
| run: | | |
| pnpm api:types | |
| git diff --exit-code -- src/lib/api/schema.d.ts | |
| contracts: | |
| name: Contract drift (schema / registry DDL / OpenAPI) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: astral-sh/setup-uv@v6 | |
| with: | |
| version: "0.9.9" | |
| python-version: "3.12" | |
| enable-cache: true | |
| - run: uv sync --frozen | |
| - run: uv run python scripts/check_contracts.py | |
| # Docker image builds are deliberately not in CI. They're slow, rarely | |
| # catch regressions the unit tests don't, and the runtime CMDs are still | |
| # placeholders. Local dev uses docker-compose (see Makefile). |