chore: upgrade node version #12460
Workflow file for this run
This file contains 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: 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@v4 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-node@v3 | |
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-ts --selectProjects type-tests | |
- name: verify [email protected] compatibility | |
run: yarn verify-old-ts | |
- name: run ESLint with type info | |
run: yarn lint-ts-files | |
typecheck: | |
name: Typecheck Examples and Tests | |
runs-on: ubuntu-latest | |
needs: prepare-yarn-cache-ubuntu | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: install | |
run: yarn --immutable | |
- name: build | |
run: yarn build:ts | |
- name: typecheck examples | |
run: yarn typecheck:examples | |
- name: typecheck tests | |
run: yarn typecheck:tests | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
needs: prepare-yarn-cache-ubuntu | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- name: install | |
run: yarn --immutable | |
- name: build | |
run: yarn build:js | |
- 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 changelog | |
run: yarn check-changelog | |
- name: check copyright headers | |
run: yarn check-copyright-headers | |
yarn-validate: | |
name: Validate Yarn dependencies and constraints | |
runs-on: ubuntu-latest | |
needs: prepare-yarn-cache-ubuntu | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: lts/* | |
cache: yarn | |
- 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 | |
with: | |
os: ubuntu-latest | |
test-macos: | |
uses: ./.github/workflows/test.yml | |
needs: prepare-yarn-cache-macos | |
with: | |
os: macos-latest | |
test-windows: | |
uses: ./.github/workflows/test.yml | |
needs: prepare-yarn-cache-windows | |
with: | |
os: windows-latest | |
test-leak: | |
name: Node LTS on Ubuntu with leak detection | |
runs-on: ubuntu-latest | |
needs: prepare-yarn-cache-ubuntu | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Use Node.js LTS | |
uses: actions/setup-node@v3 | |
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-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@v4 | |
with: | |
persist-credentials: false | |
- name: Use Node.js LTS | |
uses: actions/setup-node@v3 | |
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@v2 | |
- name: run tests with coverage | |
run: 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@v3 | |
if: always() | |
with: | |
directory: ./coverage |