Skip to content

Build chore(deps): update node.js to v24.20.0 #4044

Build chore(deps): update node.js to v24.20.0

Build chore(deps): update node.js to v24.20.0 #4044

name: Build & Unit Tests
on:
pull_request:
branches: [main, prod-beta, prod-stable]
paths-ignore:
- '**.md'
- '.github/workflows/playwright-actions.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
pull-requests: write
jobs:
malware-scan:
runs-on: ubuntu-latest
name: malware-scan
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
submodules: recursive
- name: Set up sparse checkout
uses: ./.github/actions/sparse-checkout-utils
- name: Supply chain malware scan
working-directory: .github/
env:
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
run: |
chmod +x workflowScripts/malware-pr-check.py
python3 workflowScripts/malware-pr-check.py
vulnerability-review:
runs-on: ubuntu-latest
name: vulnerability-review
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
submodules: recursive
- name: Set up sparse checkout
uses: ./.github/actions/sparse-checkout-utils
- name: Known vulnerability review
uses: actions/dependency-review-action@v5
with:
comment-summary-in-pr: on-failure
vulnerability-check: true
license-check: false
lint:
needs: [malware-scan, vulnerability-review]
runs-on: ubuntu-latest
name: lint
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
submodules: recursive
- name: Set up sparse checkout
uses: ./.github/actions/sparse-checkout-utils
- name: Cache - node_modules
if: always()
uses: actions/cache@v5
with:
path: |
node_modules
dist
key: ${{ runner.os }}-build-test-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-build-test-
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Lint
run: yarn lint
format:
needs: [malware-scan, vulnerability-review]
runs-on: ubuntu-latest
name: format
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
submodules: recursive
- name: Set up sparse checkout
uses: ./.github/actions/sparse-checkout-utils
- name: Cache - node_modules
if: always()
uses: actions/cache@v5
with:
path: |
node_modules
dist
key: ${{ runner.os }}-build-test-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-build-test-
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Format code with prettier
run: yarn format:check
build-check:
needs: [malware-scan, vulnerability-review]
runs-on: ubuntu-latest
name: build-check
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
submodules: recursive
- name: Set up sparse checkout
uses: ./.github/actions/sparse-checkout-utils
- name: Cache - node_modules
if: always()
uses: actions/cache@v5
with:
path: |
node_modules
dist
key: ${{ runner.os }}-build-test-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-build-test-
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Build the application
run: yarn build
unit-test:
needs: [malware-scan, vulnerability-review]
name: unit-test
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
submodules: recursive
- name: Set up sparse checkout
uses: ./.github/actions/sparse-checkout-utils
- name: Cache - node_modules
if: always()
uses: actions/cache@v5
with:
path: |
node_modules
dist
key: ${{ runner.os }}-build-test-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-build-test-
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
- name: Install Dependencies
run: yarn install --frozen-lockfile
- name: Tests
run: yarn test
- name: Convert JUnit report to CTRF format
run: npx junit-to-ctrf test-results/jest-junit.xml -o test-results/ctrf-report.json
if: always()
- name: Report test results
uses: ctrf-io/github-test-reporter@v1
with:
report-path: './test-results/ctrf-report.json'
if: always()