Update CI workflow for Node.js and caching

This commit is contained in:
Priya Gupta
2025-10-03 16:30:51 +05:30
committed by GitHub
parent 2ba20c9d76
commit 70df948295

View File

@ -6,7 +6,7 @@ on:
- '**.md' - '**.md'
push: push:
branches: branches:
- main - macos-15-x64-runner-test
- releases/* - releases/*
paths-ignore: paths-ignore:
- '**.md' - '**.md'
@ -18,8 +18,8 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13] os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [18, 20, 22, 24] node-version: [20, 22, 24]
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Clean global cache - name: Clean global cache
@ -41,8 +41,8 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13] os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [18, 20, 22, 24] node-version: [20, 22, 24]
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Install pnpm - name: Install pnpm
@ -74,8 +74,8 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13] os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [18, 20, 24] node-version: [20, 22, 24]
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Yarn version - name: Yarn version
@ -106,8 +106,8 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13] os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [18, 20, 22, 24] node-version: [20, 22, 24]
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Update yarn - name: Update yarn
@ -139,7 +139,7 @@ jobs:
name: Test yarn subprojects name: Test yarn subprojects
strategy: strategy:
matrix: matrix:
node-version: [18, 20, 22, 24] node-version: [20, 22, 24]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -166,7 +166,7 @@ jobs:
name: Test yarn subprojects all locally managed name: Test yarn subprojects all locally managed
strategy: strategy:
matrix: matrix:
node-version: [18, 20, 22, 24] node-version: [20, 22, 24]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -193,7 +193,7 @@ jobs:
name: Test yarn subprojects some locally managed name: Test yarn subprojects some locally managed
strategy: strategy:
matrix: matrix:
node-version: [18, 20, 22, 24] node-version: [20, 22, 24]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -220,7 +220,7 @@ jobs:
name: Test yarn subprojects managed by git name: Test yarn subprojects managed by git
strategy: strategy:
matrix: matrix:
node-version: [18, 20, 22, 24] node-version: [20, 22, 24]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -244,14 +244,14 @@ jobs:
sub2/*.lock sub2/*.lock
sub3/*.lock sub3/*.lock
node-npm-package-manager-cache: node-npm-packageManager-auto-cache:
name: Test enabling cache if package manager field is present (Node ${{ matrix.node-version }}, ${{ matrix.os }}) name: Test auto cache with top-level packageManager
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13] os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [18, 20, 22] node-version: [20, 22, 24]
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Create package.json with packageManager field - name: Create package.json with packageManager field
@ -268,3 +268,37 @@ jobs:
- name: Verify node and npm - name: Verify node and npm
run: __tests__/verify-node.sh "${{ matrix.node-version }}" run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash shell: bash
node-npm-devEngines-auto-cache:
name: Test auto cache with devEngines.packageManager
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-latest-large]
node-version: [20, 22, 24]
steps:
- uses: actions/checkout@v5
- name: Create package.json with devEngines field
run: |
echo '{
"name": "test-project",
"version": "1.0.0",
"devEngines": {
"packageManager": {
"name": "npm",
"onFail": "error"
}
}
}' > package.json
- name: Clean global cache
run: npm cache clean --force
- name: Setup Node with caching enabled
uses: ./
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Verify node and npm
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash