Repository navigation
feat: implement durable output knowledge and overlay architecture #362
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: Codegen — reproducible OpenAPI types | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'specs/**/*.yaml' | |
| - 'conformance/generated/**' | |
| - 'scripts/generate-openapi-types.mjs' | |
| - 'tools/codegen/**' | |
| - 'package.json' | |
| - '.github/workflows/codegen.yml' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'specs/**/*.yaml' | |
| - 'conformance/generated/**' | |
| - 'scripts/generate-openapi-types.mjs' | |
| - 'tools/codegen/**' | |
| - 'package.json' | |
| - '.github/workflows/codegen.yml' | |
| workflow_dispatch: | |
| concurrency: | |
| group: codegen-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: {} | |
| jobs: | |
| verify: | |
| name: Verify committed generated types | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: '24' | |
| cache: npm | |
| cache-dependency-path: tools/codegen/node/package-lock.json | |
| - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 | |
| with: | |
| go-version-file: tools/codegen/go.mod | |
| cache-dependency-path: tools/codegen/go.sum | |
| - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 | |
| with: | |
| # Keep CI reproducible while pyproject permits Dependabot's uv resolver. | |
| version: '0.11.32' | |
| python-version: '3.12' | |
| enable-cache: true | |
| cache-dependency-glob: tools/codegen/uv.lock | |
| - name: Install locked Node tooling without lifecycle scripts | |
| working-directory: tools/codegen/node | |
| run: npm ci --ignore-scripts | |
| - name: Reject high and critical Node codegen advisories | |
| working-directory: tools/codegen/node | |
| run: npm audit --audit-level=high | |
| - name: Verify generated types are byte-for-byte current | |
| run: node scripts/generate-openapi-types.mjs --check |