diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index edb7a14820c51..dbc037164c7f3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,20 +30,12 @@ jobs: - macos-14 node-version: - '22' - - '20' - - '18' - - '16' - - '14' bundle: - 'true' include: - - node-version: '*' + - node-version: '22' bundle: false os: ubuntu-latest - exclude: - # No Node 14 on ARM macOS - - node-version: '14' - os: macos-14 runs-on: ${{ matrix.os }} name: Test Node ${{ matrix.node-version }} on ${{ matrix.os }}${{ (!matrix.bundle && ' with --no-bundle') || '' }} @@ -55,12 +47,20 @@ jobs: with: node-version: ${{ matrix.node-version }} check-latest: true + + - run: | + echo "value=--no-warnings=ExperimentalWarning --experimental-require-module --require $PWD/patchProcessGetBuiltin.cjs" >> "$GITHUB_OUTPUT" + name: Enable require(ESM) and process.getBuiltin polyfill + id: node-options + - run: npm ci - name: Tests id: test # run tests, but lint separately run: npm run test -- --no-lint --bundle=${{ matrix.bundle }} + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} - name: Print baseline diff on failure if: ${{ failure() && steps.test.conclusion == 'failure' }} @@ -68,6 +68,8 @@ jobs: npx hereby baseline-accept git add tests/baselines/reference git diff --staged --exit-code + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} lint: runs-on: ubuntu-latest @@ -145,6 +147,12 @@ jobs: with: node-version: '*' check-latest: true + + - run: | + echo "value=--no-warnings=ExperimentalWarning --experimental-require-module --require $PWD/patchProcessGetBuiltin.cjs" >> "$GITHUB_OUTPUT" + name: Enable require(ESM) and process.getBuiltin polyfill + id: node-options + - run: | npm --version # corepack enable npm @@ -154,12 +162,16 @@ jobs: - run: npm ci - run: npx hereby lkg + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} - run: | node ./scripts/addPackageJsonGitHead.mjs package.json npm pack mv typescript*.tgz typescript.tgz echo "package=$PWD/typescript.tgz" >> "$GITHUB_OUTPUT" id: pack + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} - name: Smoke test run: | @@ -175,6 +187,8 @@ jobs: node $GITHUB_WORKSPACE/scripts/checkModuleFormat.mjs typescript node $GITHUB_WORKSPACE/scripts/checkModuleFormat.mjs typescript/lib/tsserverlibrary + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} package-size: runs-on: ubuntu-latest @@ -243,18 +257,30 @@ jobs: - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: '*' + node-version: '22' check-latest: true + + - run: | + echo "value=--no-warnings=ExperimentalWarning --experimental-require-module --require $PWD/patchProcessGetBuiltin.cjs" >> "$GITHUB_OUTPUT" + name: Enable require(ESM) and process.getBuiltin polyfill + id: node-options + - run: npm ci - name: Build tsc run: npx hereby tsc + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} - name: Clean run: npx hereby clean-src + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} - name: Self build run: npx hereby build-src --built + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} baselines: runs-on: ubuntu-latest @@ -263,8 +289,14 @@ jobs: - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 with: - node-version: '*' + node-version: '22' check-latest: true + + - run: | + echo "value=--no-warnings=ExperimentalWarning --experimental-require-module --require $PWD/patchProcessGetBuiltin.cjs" >> "$GITHUB_OUTPUT" + name: Enable require(ESM) and process.getBuiltin polyfill + id: node-options + - run: npm ci - name: Remove all baselines @@ -272,11 +304,15 @@ jobs: - name: Run tests run: npm test &> /dev/null || exit 0 + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} - name: Accept baselines run: | npx hereby baseline-accept git add tests/baselines/reference + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} - name: Check baselines id: check-baselines @@ -295,6 +331,8 @@ jobs: git diff --staged > fix_baselines.patch exit 1 fi + env: + NODE_OPTIONS: ${{ steps.node-options.outputs.value }} - name: Upload baseline diff artifact if: ${{ failure() && steps.check-baselines.conclusion == 'failure' }}