/
githubmirror
/
jest
Обзор
Документация
Войти
/
githubmirror
/
jest
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/nodejs.yml
264 строки
8 KB
Simen Bekkhus
ci: run the test matrix on Node 26 (#16321)
10 авг 2026, 23:59
Не верифицирован
10 авг 2026, 23:59
0246253
Код
Авторство
О чём код?
name: Node CI on: push: branches: - main pull_request: merge_group: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true permissions: contents: read # to fetch code (actions/checkout) jobs: prepare-yarn-cache-ubuntu: uses: ./.github/workflows/prepare-cache.yml with: os: ubuntu-latest prepare-yarn-cache-macos: uses: ./.github/workflows/prepare-cache.yml with: os: macos-latest prepare-yarn-cache-windows: uses: ./.github/workflows/prepare-cache.yml with: os: windows-latest ts-compatibility: name: TypeScript Compatibility runs-on: ubuntu-latest needs: prepare-yarn-cache-ubuntu steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: lts/* cache: yarn - name: install run: yarn --immutable - name: build run: yarn build - name: ts integration run: yarn test-ts --selectProjects ts-integration - name: type tests run: yarn test-types --target '>=5.4 <6.0' # For documentation, see: https://tstyche.org/guides/typescript-versions - name: verify TypeScript@5.4 compatibility run: yarn verify-old-ts - name: run ESLint with type info run: yarn lint-ts-files - name: Run tests depending on type information run: yarn test-with-type-info static-checks: name: Static Checks (Lint, Typecheck, Yarn Validate) runs-on: ubuntu-latest needs: prepare-yarn-cache-ubuntu steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: lts/* cache: yarn - name: install run: yarn --immutable - name: build TypeScript run: yarn build:ts - name: build JavaScript run: yarn build:js - name: typecheck examples run: yarn typecheck:examples - name: typecheck tests run: yarn typecheck:tests - name: verify Yarn PnP compatibility run: yarn verify-pnp - name: run eslint run: yarn lint - name: run prettier run: yarn lint:prettier:ci - name: check copyright headers run: yarn check-copyright-headers - name: 'Check for unmet constraints (fix w/ "yarn constraints --fix")' run: yarn constraints - name: 'Check for duplicate dependencies (fix w/ "yarn dedupe")' run: yarn dedupe --check test-ubuntu: uses: ./.github/workflows/test.yml needs: prepare-yarn-cache-ubuntu strategy: fail-fast: false matrix: shard: ['1/4', '2/4', '3/4', '4/4'] name: Ubuntu with shard ${{ matrix.shard }} with: os: ubuntu-latest shard: ${{ matrix.shard }} test-macos: uses: ./.github/workflows/test.yml needs: prepare-yarn-cache-macos strategy: fail-fast: false matrix: shard: ['1/3', '2/3', '3/3'] name: macOS with shard ${{ matrix.shard }} with: os: macos-latest shard: ${{ matrix.shard }} test-windows: uses: ./.github/workflows/test.yml needs: prepare-yarn-cache-windows strategy: fail-fast: false matrix: shard: ['1/4', '2/4', '3/4', '4/4'] name: Windows with shard ${{ matrix.shard }} with: os: windows-latest shard: ${{ matrix.shard }} test-leak: name: Node LTS on Ubuntu with leak detection runs-on: ubuntu-latest needs: prepare-yarn-cache-ubuntu steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Use Node.js LTS uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: lts/* cache: yarn - name: install run: yarn --immutable - name: build run: yarn build:js - name: run tests with leak detection run: yarn test-leak test-runtime-vm-modules: name: Node ${{ matrix.node-version }} on Ubuntu with --experimental-vm-modules (jest-runtime) runs-on: ubuntu-latest needs: prepare-yarn-cache-ubuntu strategy: fail-fast: false matrix: node-version: [18.x, 20.x, 22.x, 24.x, 25.x, 26.x] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ matrix.node-version }} cache: yarn - name: install run: yarn --immutable - name: build run: yarn build:js - name: Get number of CPU cores id: cpu-cores uses: SimenB/github-actions-cpu-cores@97330871fe1b7d3529392ea000e3d2c4b357e403 # v3 - name: run jest-runtime tests with --experimental-vm-modules uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4 with: timeout_minutes: 10 max_attempts: 3 retry_on: error command: yarn jest-runtime-vm-modules-ci --max-workers ${{ steps.cpu-cores.outputs.count }} - name: map coverage run: node ./scripts/mapCoverage.mjs if: always() - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 if: always() with: directory: ./coverage token: ${{ secrets.CODECOV_TOKEN }} test-watchman: name: Node LTS on Ubuntu with watchman runs-on: ubuntu-latest needs: prepare-yarn-cache-ubuntu steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Use Node.js LTS uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: lts/* cache: yarn - name: install watchman run: | sudo apt-get update sudo apt-get install --no-install-recommends -y watchman watchman --version - name: install run: yarn --immutable - name: build run: yarn build:js - name: Get number of CPU cores id: cpu-cores uses: SimenB/github-actions-cpu-cores@97330871fe1b7d3529392ea000e3d2c4b357e403 # v3 - name: run watchman tests uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4 with: timeout_minutes: 10 max_attempts: 3 retry_on: error command: yarn test-watchman --max-workers ${{ steps.cpu-cores.outputs.count }} test-coverage: name: Node LTS on Ubuntu with coverage (${{ matrix.shard }}) strategy: fail-fast: false matrix: shard: ['1/4', '2/4', '3/4', '4/4'] runs-on: ubuntu-latest needs: prepare-yarn-cache-ubuntu steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Use Node.js LTS uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: lts/* cache: yarn - name: install run: yarn --immutable - name: build run: yarn build:js - name: Get number of CPU cores id: cpu-cores uses: SimenB/github-actions-cpu-cores@97330871fe1b7d3529392ea000e3d2c4b357e403 # v3 - name: run tests with coverage uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4 with: timeout_minutes: 10 max_attempts: 3 retry_on: error command: yarn jest-coverage --color --config jest.config.ci.mjs --max-workers ${{ steps.cpu-cores.outputs.count }} --shard=${{ matrix.shard }} - name: map coverage run: node ./scripts/mapCoverage.mjs if: always() - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 if: always() with: directory: ./coverage token: ${{ secrets.CODECOV_TOKEN }}