vignette/.github/workflows/api-contract.yml
2026-06-27 18:42:09 +09:00

58 lines
1.4 KiB
YAML

name: API contract
on:
pull_request:
paths:
- "apps/api/**"
- "apps/web/src/lib/api.gen.ts"
- "apps/web/scripts/generate-api-types.mjs"
- "apps/web/package.json"
- "apps/web/package-lock.json"
- ".github/workflows/api-contract.yml"
push:
branches:
- master
paths:
- "apps/api/**"
- "apps/web/src/lib/api.gen.ts"
- "apps/web/scripts/generate-api-types.mjs"
- "apps/web/package.json"
- "apps/web/package-lock.json"
- ".github/workflows/api-contract.yml"
permissions:
contents: read
jobs:
api-types:
name: OpenAPI type drift
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install API dependencies
working-directory: apps/api
run: python -m pip install -r requirements.txt
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm
cache-dependency-path: apps/web/package-lock.json
- name: Install web dependencies
working-directory: apps/web
run: npm ci
- name: Check generated API types
working-directory: apps/web
run: npm run check:api-types