diff --git a/.github/workflows/basic-validation.yml b/.github/workflows/basic-validation.yml index d2b406f3..4cb6489e 100644 --- a/.github/workflows/basic-validation.yml +++ b/.github/workflows/basic-validation.yml @@ -16,4 +16,4 @@ jobs: name: Basic validation uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main with: - node-version: '20.x' + node-version: '24.x' diff --git a/.github/workflows/e2e-cache.yml b/.github/workflows/e2e-cache.yml index cede9b63..5b7041bd 100644 --- a/.github/workflows/e2e-cache.yml +++ b/.github/workflows/e2e-cache.yml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest, macos-13] - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] steps: - uses: actions/checkout@v4 - name: Clean global cache @@ -42,7 +42,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest, macos-13] - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] steps: - uses: actions/checkout@v4 - name: Install pnpm @@ -75,13 +75,13 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest, macos-13] - node-version: [18, 20] + node-version: [18, 20, 24] steps: - uses: actions/checkout@v4 - name: Yarn version run: yarn --version - name: Generate yarn file - run: yarn install + run: yarn install --ignore-engines - name: Remove dependencies shell: pwsh run: Remove-Item node_modules -Force -Recurse @@ -107,7 +107,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest, macos-13] - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] steps: - uses: actions/checkout@v4 - name: Update yarn @@ -139,7 +139,7 @@ jobs: name: Test yarn subprojects strategy: matrix: - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] runs-on: ubuntu-latest steps: @@ -166,7 +166,7 @@ jobs: name: Test yarn subprojects all locally managed strategy: matrix: - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] runs-on: ubuntu-latest steps: @@ -193,7 +193,7 @@ jobs: name: Test yarn subprojects some locally managed strategy: matrix: - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] runs-on: ubuntu-latest steps: @@ -220,7 +220,7 @@ jobs: name: Test yarn subprojects managed by git strategy: matrix: - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] runs-on: ubuntu-latest steps: diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index b51ba8b5..eb2a481b 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -18,7 +18,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest, macos-13] - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] steps: - uses: actions/checkout@v4 - name: Setup Node @@ -139,7 +139,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest, macos-13] - node-version: [18, 20, 22] + node-version: [18, 20, 22, 24] steps: - uses: actions/checkout@v4 - name: Setup Node and check latest @@ -166,7 +166,7 @@ jobs: with: node-version-file: '__tests__/data/${{ matrix.node-version-file }}' - name: Verify node - run: __tests__/verify-node.sh 20 + run: __tests__/verify-node.sh 24 version-file-volta: runs-on: ${{ matrix.os }} @@ -181,7 +181,7 @@ jobs: with: node-version-file: '__tests__/data/package-volta.json' - name: Verify node - run: __tests__/verify-node.sh 20 + run: __tests__/verify-node.sh 24 version-file-volta-extends: runs-on: ${{ matrix.os }} @@ -196,7 +196,7 @@ jobs: with: node-version-file: '__tests__/data/package-volta-extends.json' - name: Verify node - run: __tests__/verify-node.sh 20 + run: __tests__/verify-node.sh 24 node-dist: runs-on: ${{ matrix.os }} diff --git a/.licenses/npm/@types/node.dep.yml b/.licenses/npm/@types/node.dep.yml index 4773dad7..86544f48 100644 Binary files a/.licenses/npm/@types/node.dep.yml and b/.licenses/npm/@types/node.dep.yml differ diff --git a/.licenses/npm/undici-types.dep.yml b/.licenses/npm/undici-types.dep.yml index a65b8aff..370219bf 100644 Binary files a/.licenses/npm/undici-types.dep.yml and b/.licenses/npm/undici-types.dep.yml differ diff --git a/__tests__/data/.nvmrc b/__tests__/data/.nvmrc index 9a2a0e21..54c65116 100644 --- a/__tests__/data/.nvmrc +++ b/__tests__/data/.nvmrc @@ -1 +1 @@ -v20 +v24 diff --git a/__tests__/data/.tool-versions b/__tests__/data/.tool-versions index 6de89a83..7ca549c1 100644 --- a/__tests__/data/.tool-versions +++ b/__tests__/data/.tool-versions @@ -1 +1 @@ -nodejs 20.0.0 +nodejs 24.0.0 diff --git a/__tests__/data/.tool-versions-node b/__tests__/data/.tool-versions-node index 4d5dd711..9f5de99c 100644 --- a/__tests__/data/.tool-versions-node +++ b/__tests__/data/.tool-versions-node @@ -1 +1 @@ -node 20.0.0 +node 24.0.0 diff --git a/__tests__/data/package-volta.json b/__tests__/data/package-volta.json index 6c9583f1..12b3b6ef 100644 --- a/__tests__/data/package-volta.json +++ b/__tests__/data/package-volta.json @@ -3,6 +3,6 @@ "node": "^14.0.0" }, "volta": { - "node": "20.0.0" + "node": "24.0.0" } } diff --git a/__tests__/data/package.json b/__tests__/data/package.json index 4fb385a2..724da539 100644 --- a/__tests__/data/package.json +++ b/__tests__/data/package.json @@ -1,5 +1,5 @@ { "engines": { - "node": "^20.0.0" + "node": "^24.0.0" } } diff --git a/__tests__/verify-node.sh b/__tests__/verify-node.sh index 797aa789..38a03a4c 100755 --- a/__tests__/verify-node.sh +++ b/__tests__/verify-node.sh @@ -7,8 +7,13 @@ fi node_version="$(node --version)" echo "Found node version '$node_version'" -if [ -z "$(echo $node_version | grep --fixed-strings v$1)" ]; then - echo "Unexpected version" + +# Extract the major version from the node version (remove the 'v' prefix) +actual_major_version=$(echo $node_version | sed -E 's/^v([0-9]+)\..*/\1/') +expected_major_version=$(echo $1 | sed -E 's/^([0-9]+)\..*/\1/') # Extract major version from argument + +if [ "$actual_major_version" != "$expected_major_version" ]; then + echo "Expected Node.js $expected_major_version.x.x but found $node_version" exit 1 fi diff --git a/action.yml b/action.yml index ef58e699..fb7cb2de 100644 --- a/action.yml +++ b/action.yml @@ -37,7 +37,7 @@ outputs: node-version: description: 'The installed node version.' runs: - using: 'node20' + using: 'node24' main: 'dist/setup/index.js' post: 'dist/cache-save/index.js' post-if: success() diff --git a/package-lock.json b/package-lock.json index fa0c2eb6..d09bf273 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "setup-node", - "version": "4.0.0", + "version": "5.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "setup-node", - "version": "4.0.0", + "version": "5.0.0", "license": "MIT", "dependencies": { "@actions/cache": "^4.0.3", @@ -22,7 +22,7 @@ }, "devDependencies": { "@types/jest": "^29.5.14", - "@types/node": "^20.11.25", + "@types/node": "^24.1.0", "@types/semver": "^7.5.8", "@typescript-eslint/eslint-plugin": "^5.54.0", "@typescript-eslint/parser": "^5.54.0", @@ -37,6 +37,9 @@ "prettier": "^2.8.4", "ts-jest": "^29.1.2", "typescript": "^5.4.2" + }, + "engines": { + "node": ">=24.0.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -1780,11 +1783,12 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", - "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", + "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.8.0" } }, "node_modules/@types/node-fetch": { @@ -5552,9 +5556,10 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "license": "MIT" }, "node_modules/universal-user-agent": { "version": "6.0.1", diff --git a/package.json b/package.json index dfa86bf2..3399437a 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,12 @@ { "name": "setup-node", - "version": "4.0.0", + "version": "5.0.0", "private": true, "description": "setup node action", "main": "lib/setup-node.js", + "engines": { + "node": ">=24.0.0" + }, "scripts": { "build": "ncc build -o dist/setup src/setup-node.ts && ncc build -o dist/cache-save src/cache-save.ts", "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"", @@ -38,7 +41,7 @@ }, "devDependencies": { "@types/jest": "^29.5.14", - "@types/node": "^20.11.25", + "@types/node": "^24.1.0", "@types/semver": "^7.5.8", "@typescript-eslint/eslint-plugin": "^5.54.0", "@typescript-eslint/parser": "^5.54.0",