chore(release): prepare v1.2.0 #92
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: | |
| permissions: | |
| contents: read | |
| jobs: | |
| engine: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.12' | |
| cache: pip | |
| - run: python -m pip install -e . | |
| - run: python -m unittest discover -s tests -v | |
| visualizer: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 | |
| with: | |
| node-version: '22' | |
| cache: npm | |
| - run: npm ci | |
| - run: npm run lint | |
| - run: npm run typecheck | |
| # The dedicated `parity` job enforces cross-engine parity fail-hard with | |
| # the Python engine installed; the visualizer job has no Python runtime. | |
| - name: Unit tests (cross-engine parity enforced in dedicated parity job) | |
| run: npm run test:unit | |
| env: | |
| REPODNA_ALLOW_PYTHON_PARITY_SKIP: '1' | |
| - run: npm run build | |
| - run: npm run build:vercel | |
| parity: | |
| name: Cross-engine parity (TS + Python) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 | |
| with: | |
| node-version: '22' | |
| cache: npm | |
| - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.12' | |
| cache: pip | |
| - run: npm ci | |
| - run: python -m pip install -e . | |
| # Fail-hard cross-engine contract: a missing Python engine, a crash, or | |
| # any TypeScript/Python output drift fails CI. No skip env var is set. | |
| - run: npx vitest run tests/unit/parity.test.ts | |
| browser-smoke: | |
| runs-on: ubuntu-latest | |
| needs: visualizer | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 | |
| with: | |
| node-version: '22' | |
| cache: npm | |
| - run: npm ci | |
| - run: npx playwright install --with-deps chromium | |
| - run: npm run test:e2e |