Clean up child compilation chunk graph to avoid memory leak #5421
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: Test | |
# cspell:word eslintcache | |
on: | |
push: | |
branches: | |
- main | |
- dev-1 | |
pull_request: | |
branches: | |
- main | |
- dev-1 | |
permissions: | |
contents: read | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: "yarn" | |
- run: yarn --frozen-lockfile | |
- uses: actions/cache@v3 | |
with: | |
path: .eslintcache | |
key: lint-${{ env.GITHUB_SHA }} | |
restore-keys: lint- | |
- run: yarn lint | |
basic: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: "yarn" | |
- run: yarn --frozen-lockfile | |
- run: yarn link --frozen-lockfile || true | |
- run: yarn link webpack --frozen-lockfile | |
- run: yarn test:basic --ci | |
- uses: codecov/codecov-action@v3 | |
with: | |
flags: basic | |
functionalities: gcov | |
validate-legacy-node: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 10.x | |
cache: "yarn" | |
# Remove `devDependencies` from `package.json` to avoid `yarn install` compatibility error | |
- run: node -e "const content = require('./package.json');delete content.devDependencies;require('fs').writeFileSync('package.json', JSON.stringify(content, null, 2));" | |
- run: yarn install --production --frozen-lockfile | |
unit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: "yarn" | |
- run: yarn --frozen-lockfile | |
- run: yarn link --frozen-lockfile || true | |
- run: yarn link webpack --frozen-lockfile | |
- uses: actions/cache@v3 | |
with: | |
path: .jest-cache | |
key: jest-unit-${{ env.GITHUB_SHA }} | |
restore-keys: jest-unit- | |
- run: yarn cover:unit --ci --cacheDirectory .jest-cache | |
- uses: codecov/codecov-action@v3 | |
with: | |
flags: unit | |
functionalities: gcov | |
integration: | |
needs: basic | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
node-version: [10.x, 20.x] | |
part: [a, b] | |
include: | |
- os: ubuntu-latest | |
node-version: 18.x | |
part: a | |
- os: ubuntu-latest | |
node-version: 16.x | |
part: a | |
- os: ubuntu-latest | |
node-version: 14.x | |
part: a | |
- os: ubuntu-latest | |
node-version: 12.x | |
part: a | |
# Test with main branches of webpack dependencies | |
- os: ubuntu-latest | |
node-version: 16.x | |
part: a | |
use_main_branches: 1 | |
- os: ubuntu-latest | |
node-version: 16.x | |
part: b | |
use_main_branches: 1 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: "yarn" | |
# Install old `jest` version and deps for legacy node versions | |
- run: | | |
yarn upgrade jest@^27.5.0 jest-circus@^27.5.0 jest-cli@^27.5.0 jest-diff@^27.5.0 jest-environment-node@^27.5.0 jest-junit@^13.0.0 @types/jest@^27.4.0 pretty-format@^27.0.2 --ignore-engines | |
yarn --frozen-lockfile --ignore-engines | |
if: matrix.node-version == '10.x' || matrix.node-version == '12.x' || matrix.node-version == '14.x' | |
# Install main version of our deps | |
- run: yarn upgrade enhanced-resolve@webpack/enhanced-resolve#main loader-runner@webpack/loader-runner#main webpack-sources@webpack/webpack-sources#main watchpack@webpack/watchpack#main tapable@webpack/tapable#master | |
if: matrix.use_main_branches == '1' | |
# Install dependencies for LTS node versions | |
- run: yarn --frozen-lockfile | |
if: matrix.node-version != '10.x' && matrix.node-version != '12.x' && matrix.node-version != '14.x' | |
- run: yarn link --frozen-lockfile || true | |
- run: yarn link webpack --frozen-lockfile | |
- uses: actions/cache@v3 | |
with: | |
path: .jest-cache | |
key: jest-integration-${{ env.GITHUB_SHA }} | |
restore-keys: jest-integration- | |
- run: yarn cover:integration:${{ matrix.part }} --ci --cacheDirectory .jest-cache || yarn cover:integration:${{ matrix.part }} --ci --cacheDirectory .jest-cache -f | |
- run: yarn cover:merge | |
- uses: codecov/codecov-action@v3 | |
with: | |
flags: integration | |
functionalities: gcov |