name: ci on: push: branches: [master] pull_request: jobs: # Domain schemas + deterministic services (TS side of the contract pipeline). typescript: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 24 cache: npm - run: npm ci - run: npm run typecheck # ADR-0002: contracts/ is generated from packages/domain and committed. # A dirty tree here means someone changed a zod schema without # re-exporting, or hand-edited a generated file. - run: npm run export:schemas && npm run make:fixtures - run: git diff --exit-code -- contracts/ - run: npm test # Generated pydantic models must accept/reject the same golden fixtures the # TS side does (docs/11 ยง3.2 dual-side contract test). python: runs-on: ubuntu-latest defaults: run: working-directory: skills-py steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version-file: skills-py/.python-version cache: pip cache-dependency-path: skills-py/requirements.txt - run: pip install -r requirements.txt # Generated models are committed but never hand-edited: regenerate and # require a clean tree. - run: bash scripts/generate_models.sh - run: git diff --exit-code -- vpp_contracts/ - run: python -m pytest -q