fix: upgrade @types/node to v18 #20937
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: Build | |
on: | |
# Ensure GitHub actions are not run twice for same commits | |
push: | |
branches: [main] | |
pull_request: | |
types: [opened, synchronize, reopened] | |
merge_group: | |
jobs: | |
e2e: | |
runs-on: ubuntu-24.04 | |
timeout-minutes: 60 | |
steps: | |
# Sets an output parameter if this is a release PR | |
- name: Check for release | |
id: release-check | |
# For windows we have to use $env: | |
run: |- | |
echo "IS_RELEASE=true" >> $GITHUB_OUTPUT | |
echo "IS_RELEASE=true" >> $env:GITHUB_OUTPUT | |
if: ${{ startsWith(github.head_ref, 'release-') }} | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Install dependencies | |
run: npm ci | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Install Playwright Browsers | |
run: npx playwright install --with-deps | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: test | |
run: npx nx run-many --target=e2e | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: playwright-report | |
path: playwright-report/ | |
retention-days: 30 | |
test: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
os: [ubuntu-24.04, macos-14, windows-2022] | |
node-version: ['22'] | |
# Must include the minimum deno version from the `DENO_VERSION_RANGE` constant in `node/bridge.ts`. | |
deno-version: ['v1.39.0', 'v2.2.4'] | |
include: | |
- os: ubuntu-24.04 | |
# Earliest supported version | |
node-version: '18.14.0' | |
deno-version: 'v2.2.4' | |
fail-fast: false | |
steps: | |
# Sets an output parameter if this is a release PR | |
- name: Check for release | |
id: release-check | |
# For windows we have to use $env: | |
run: |- | |
echo "IS_RELEASE=true" >> $GITHUB_OUTPUT | |
echo "IS_RELEASE=true" >> $env:GITHUB_OUTPUT | |
if: ${{ startsWith(github.head_ref, 'release-') }} | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Setup Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: ${{ matrix.deno-version }} | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Setup Deno dependencies | |
run: deno cache https://deno.land/x/eszip@v0.55.2/eszip.ts | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.18' | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Install dependencies | |
run: npm ci | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Build | |
run: npx nx run-many --target=build | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Tests | |
run: npx nx run-many --target=test:ci --exclude=@netlify/build --parallel=3 | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
test-build: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
os: [ubuntu-24.04, macos-14, windows-2022] | |
node-version: ['22'] | |
install-command: ['npm ci'] | |
machine: ['0', '1', '2', '3', '4'] | |
include: | |
# We test on the oldest supported Node.js version, but only with a | |
# single combination (Ubuntu) | |
- os: ubuntu-24.04 | |
node-version: '18.14.0' | |
install-command: npm ci | |
machine: '0' | |
- os: ubuntu-24.04 | |
node-version: '18.14.0' | |
install-command: npm ci | |
machine: '1' | |
- os: ubuntu-24.04 | |
node-version: '18.14.0' | |
install-command: npm ci | |
machine: '2' | |
- os: ubuntu-24.04 | |
node-version: '18.14.0' | |
install-command: npm ci | |
machine: '3' | |
- os: ubuntu-24.04 | |
node-version: '18.14.0' | |
install-command: npm ci | |
machine: '4' | |
fail-fast: false | |
steps: | |
# Sets an output parameter if this is a release PR | |
- name: Check for release | |
id: release-check | |
# For windows we have to use $env: | |
run: |- | |
echo "IS_RELEASE=true" >> $GITHUB_OUTPUT | |
echo "IS_RELEASE=true" >> $env:GITHUB_OUTPUT | |
if: ${{ startsWith(github.head_ref, 'release-') }} | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Setup Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v2.2.4 | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: corepack update | |
# corepack version distributed with Node.js has a problem with new package manager releases, | |
# so forcing fixed version of corepack here | |
run: npm i -g corepack --force | |
- name: setup pnpm/yarn | |
run: corepack enable | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.18' | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Install dependencies | |
run: ${{ matrix.install-command }} | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Build workspaces | |
run: npm run build | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
- name: Tests | |
run: npx lerna run test:ci --scope @netlify/build | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
env: | |
# split tests across multiple machines | |
CI_NODE_INDEX: ${{ matrix.machine }} | |
CI_NODE_TOTAL: 5 | |
- name: Get test coverage flags | |
id: test-coverage-flags | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
# For windows we have to use $env: | |
run: |- | |
os=${{ matrix.os }} | |
node=$(node --version) | |
echo "os=${os/-latest/}" >> $GITHUB_OUTPUT | |
echo "os=${os/-latest/}" >> $env:GITHUB_OUTPUT | |
echo "node=node_${node/.*.*/}" >> $GITHUB_OUTPUT | |
echo "node=node_${node/.*.*/}" >> $env:GITHUB_OUTPUT | |
shell: bash | |
- uses: codecov/codecov-action@v5 | |
if: ${{ !steps.release-check.outputs.IS_RELEASE }} | |
with: | |
files: | |
packages/build/coverage/coverage-final.json, packages/config/coverage/coverage-final.json, | |
packages/cache-utils/coverage/coverage-final.json, packages/function-utils/coverage/coverage-final.json, | |
packages/git-utils/coverage/coverage-final.json, packages/run-utils/coverage/coverage-final.json | |
flags: ${{ steps.test-coverage-flags.outputs.os }},${{ steps.test-coverage-flags.outputs.node }} | |
continue-on-error: true |