compat-eslint: dogfood-corpus parity sweep + 6 drift fixes it caught #39
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: test | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - 'master' | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install | |
| - run: pnpm run build | |
| # Per-rule parity bench (~0.6 s) — gates against location-keyed | |
| # divergence between compat-eslint and ESLint upstream. | |
| - name: Parity bench | |
| run: pnpm -F @tsslint/compat-eslint bench | |
| # Vendored @typescript-eslint/scope-manager test suite. | |
| - name: Upstream scope-manager | |
| run: pnpm -F @tsslint/compat-eslint test:upstream | |
| # Predicate coverage matrix for AST_NODE_TYPES. | |
| - name: Predicate coverage | |
| run: pnpm -F @tsslint/compat-eslint test:predicate-coverage | |
| # JSX type-aware parity vs ESLint Linter on eslint-plugin-react-x. | |
| - name: JSX react-x parity | |
| run: pnpm -F @tsslint/compat-eslint test:jsx-react-x | |
| # Lazy ESTree shape parity (every .ts under packages/) + identity | |
| # invariants + smoke under visitorKeys traversal. | |
| - name: Lazy ESTree parity | |
| run: node packages/compat-eslint/test/lazy-estree.test.js | |
| # Integration: selector dispatch + CPA fallback + per-rule error | |
| # isolation through the full convertRule pipeline. | |
| - name: Compat pipeline integration | |
| run: node packages/compat-eslint/test/compat-pipeline.test.js | |
| # Selector decomposition unit tests. | |
| - name: Selector analysis | |
| run: node packages/compat-eslint/test/selector-analysis.test.js | |
| # TS-AST scan walker unit tests. | |
| - name: TS-AST scan | |
| run: node packages/compat-eslint/test/ts-ast-scan.test.js | |
| # Core: type-aware rule probe (foundation for layer 1 cache). | |
| - name: Core probe | |
| run: node packages/core/test/probe.test.js | |
| # Core: BuilderProgram POC for layer 2 cache invalidation. | |
| - name: Core BuilderProgram POC | |
| run: node packages/core/test/builder-program-poc.test.js | |
| # Core: skip-rules option + hasFixForDiagnostic API (the surface | |
| # the CLI cache layer uses). | |
| - name: Core skip-rules | |
| run: node packages/core/test/skip-rules.test.js | |
| # CLI: cache file load / save / atomic write / version key. | |
| - name: CLI cache module | |
| run: node packages/cli/test/cache.test.js | |
| # CLI: cache-flow — layer 1 cache integration with the linter. | |
| - name: CLI cache-flow | |
| run: node packages/cli/test/cache-flow.test.js | |
| # CLI: end-to-end integration via subprocess on a temp fixture. | |
| - name: CLI integration | |
| run: node packages/cli/test/integration.test.js | |
| # CLI: layer 2 cross-session affected-file diff. | |
| - name: CLI incremental state | |
| run: node packages/cli/test/incremental-state.test.js |