mirror of
				https://gitea.com/actions/setup-node.git
				synced 2025-10-29 15:52:42 +08:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			v5
			...
			test-macos
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					746f200ccd | ||
| 
						 | 
					4fcdf84cf4 | ||
| 
						 | 
					7299ce5c60 | ||
| 
						 | 
					1ea62dc588 | 
							
								
								
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/basic-validation.yml
									
									
									
									
										vendored
									
									
								
							@@ -16,4 +16,4 @@ jobs:
 | 
				
			|||||||
    name: Basic validation
 | 
					    name: Basic validation
 | 
				
			||||||
    uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
 | 
					    uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
 | 
				
			||||||
    with:
 | 
					    with:
 | 
				
			||||||
      node-version: '24.x'
 | 
					      node-version: '20.x'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										68
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										68
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							@@ -6,7 +6,7 @@ on:
 | 
				
			|||||||
      - '**.md'
 | 
					      - '**.md'
 | 
				
			||||||
  push:
 | 
					  push:
 | 
				
			||||||
    branches:
 | 
					    branches:
 | 
				
			||||||
      - main
 | 
					      - test-macos-x64-runner
 | 
				
			||||||
      - 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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								.github/workflows/proxy.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/proxy.yml
									
									
									
									
										vendored
									
									
								
							@@ -25,7 +25,7 @@ jobs:
 | 
				
			|||||||
    env:
 | 
					    env:
 | 
				
			||||||
      https_proxy: http://squid-proxy:3128
 | 
					      https_proxy: http://squid-proxy:3128
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - name: Clear tool cache
 | 
					      - name: Clear tool cache
 | 
				
			||||||
        run: rm -rf $RUNNER_TOOL_CACHE/*
 | 
					        run: rm -rf $RUNNER_TOOL_CACHE/*
 | 
				
			||||||
      - name: Setup node 14
 | 
					      - name: Setup node 14
 | 
				
			||||||
@@ -41,7 +41,7 @@ jobs:
 | 
				
			|||||||
      https_proxy: http://no-such-proxy:3128
 | 
					      https_proxy: http://no-such-proxy:3128
 | 
				
			||||||
      no_proxy: api.github.com,github.com,nodejs.org,registry.npmjs.org,*.s3.amazonaws.com,s3.amazonaws.com
 | 
					      no_proxy: api.github.com,github.com,nodejs.org,registry.npmjs.org,*.s3.amazonaws.com,s3.amazonaws.com
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - name: Clear tool cache
 | 
					      - name: Clear tool cache
 | 
				
			||||||
        run: rm -rf $RUNNER_TOOL_CACHE/*
 | 
					        run: rm -rf $RUNNER_TOOL_CACHE/*
 | 
				
			||||||
      - name: Setup node 11
 | 
					      - name: Setup node 11
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checking out
 | 
					      - name: Checking out
 | 
				
			||||||
        uses: actions/checkout@v5
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
      - name: Publish
 | 
					      - name: Publish
 | 
				
			||||||
        id: publish
 | 
					        id: publish
 | 
				
			||||||
        uses: actions/publish-immutable-action@v0.0.4
 | 
					        uses: actions/publish-immutable-action@v0.0.4
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										38
									
								
								.github/workflows/versions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								.github/workflows/versions.yml
									
									
									
									
										vendored
									
									
								
							@@ -6,7 +6,7 @@ on:
 | 
				
			|||||||
      - '**.md'
 | 
					      - '**.md'
 | 
				
			||||||
  push:
 | 
					  push:
 | 
				
			||||||
    branches:
 | 
					    branches:
 | 
				
			||||||
      - main
 | 
					      - test-macos-x64-runner
 | 
				
			||||||
      - releases/*
 | 
					      - releases/*
 | 
				
			||||||
    paths-ignore:
 | 
					    paths-ignore:
 | 
				
			||||||
      - '**.md'
 | 
					      - '**.md'
 | 
				
			||||||
@@ -17,8 +17,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: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
@@ -34,7 +34,7 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest-large]
 | 
				
			||||||
        node-version: [lts/dubnium, lts/erbium, lts/fermium, lts/*, lts/-1]
 | 
					        node-version: [lts/dubnium, lts/erbium, lts/fermium, lts/*, lts/-1]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
@@ -56,7 +56,7 @@ 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:
 | 
					        node-version:
 | 
				
			||||||
          [
 | 
					          [
 | 
				
			||||||
            '20-v8-canary',
 | 
					            '20-v8-canary',
 | 
				
			||||||
@@ -81,8 +81,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: [20-nightly, 21-nightly, 18.0.0-nightly]
 | 
					        node-version: [20-nightly, 25-nightly, 24.0.0-nightly]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
@@ -101,8 +101,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: [20.0.0-rc.1, 18.0.0-rc.2, 19.0.0-rc.0]
 | 
					        node-version: [20.0.0-rc.1, 22.14.0-rc.1, 24.0.0-rc.4]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
@@ -121,8 +121,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.0, 20.10.0, 22.0.0]
 | 
					        node-version: [20.10.0, 22.0.0, 24.9.0]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup Node
 | 
					      - name: Setup Node
 | 
				
			||||||
@@ -138,8 +138,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: Setup Node and check latest
 | 
					      - name: Setup Node and check latest
 | 
				
			||||||
@@ -156,7 +156,7 @@ 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-file:
 | 
					        node-version-file:
 | 
				
			||||||
          [.nvmrc, .tool-versions, .tool-versions-node, package.json]
 | 
					          [.nvmrc, .tool-versions, .tool-versions-node, package.json]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
@@ -173,7 +173,7 @@ 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]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup node from node version file
 | 
					      - name: Setup node from node version file
 | 
				
			||||||
@@ -188,7 +188,7 @@ 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]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      - name: Setup node from node version file
 | 
					      - name: Setup node from node version file
 | 
				
			||||||
@@ -203,7 +203,7 @@ 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: [17, 19]
 | 
					        node-version: [17, 19]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
@@ -220,7 +220,7 @@ jobs:
 | 
				
			|||||||
    strategy:
 | 
					    strategy:
 | 
				
			||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        os: [ubuntu-latest, windows-latest, macos-13]
 | 
					        os: [ubuntu-latest, windows-latest, macos-latest-large]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v5
 | 
				
			||||||
      # test old versions which didn't have npm and layout different
 | 
					      # test old versions which didn't have npm and layout different
 | 
				
			||||||
@@ -250,7 +250,7 @@ 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: [current, latest, node]
 | 
					        node-version: [current, latest, node]
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Get node version
 | 
					      - name: Get node version
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: "@types/node"
 | 
					name: "@types/node"
 | 
				
			||||||
version: 24.1.0
 | 
					version: 20.11.25
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: TypeScript definitions for node
 | 
					summary: TypeScript definitions for node
 | 
				
			||||||
homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node
 | 
					homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								.licenses/npm/undici-types.dep.yml
									
									
									
										generated
									
									
									
								
							@@ -1,17 +1,15 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
name: undici-types
 | 
					name: undici-types
 | 
				
			||||||
version: 7.8.0
 | 
					version: 5.26.5
 | 
				
			||||||
type: npm
 | 
					type: npm
 | 
				
			||||||
summary: A stand-alone types package for Undici
 | 
					summary: A stand-alone types package for Undici
 | 
				
			||||||
homepage: https://undici.nodejs.org
 | 
					homepage: https://undici.nodejs.org
 | 
				
			||||||
license: mit
 | 
					license: mit
 | 
				
			||||||
licenses:
 | 
					licenses:
 | 
				
			||||||
- sources: LICENSE
 | 
					- sources: Auto-generated MIT license text
 | 
				
			||||||
  text: |
 | 
					  text: |
 | 
				
			||||||
    MIT License
 | 
					    MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Copyright (c) Matteo Collina and Undici contributors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
					    Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
    of this software and associated documentation files (the "Software"), to deal
 | 
					    of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
    in the Software without restriction, including without limitation the rights
 | 
					    in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										34
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								README.md
									
									
									
									
									
								
							@@ -18,7 +18,7 @@ See [action.yml](action.yml)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<!-- start usage -->
 | 
					<!-- start usage -->
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    # Version Spec of the version to use in SemVer notation.
 | 
					    # Version Spec of the version to use in SemVer notation.
 | 
				
			||||||
    # It also admits such aliases as lts/*, latest, nightly and canary builds
 | 
					    # It also admits such aliases as lts/*, latest, nightly and canary builds
 | 
				
			||||||
@@ -98,8 +98,8 @@ See [action.yml](action.yml)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 18
 | 
					    node-version: 18
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
@@ -135,19 +135,7 @@ It's **always** recommended to commit the lockfile of your package manager for s
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Caching global packages data
 | 
					## Caching global packages data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/actions/cache) under the hood for caching global packages data but requires less configuration settings. Supported package managers are `npm`, `yarn`, `pnpm` (v6.10+). The `cache` input is optional.
 | 
					The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/actions/cache) under the hood for caching global packages data but requires less configuration settings. Supported package managers are `npm`, `yarn`, `pnpm` (v6.10+). The `cache` input is optional, and caching is turned off by default.
 | 
				
			||||||
 | 
					 | 
				
			||||||
Caching is turned on by default when a `packageManager` field is detected in the `package.json` file. The `package-manager-cache` input provides control over this automatic caching behavior. By default, `package-manager-cache` is set to `true`, which enables caching when a valid package manager field is detected in the `package.json` file. To disable this automatic caching, set the `package-manager-cache` input to `false`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```yaml
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
- uses: actions/checkout@v4
 | 
					 | 
				
			||||||
- uses: actions/setup-node@v4
 | 
					 | 
				
			||||||
  with:
 | 
					 | 
				
			||||||
    package-manager-cache: false
 | 
					 | 
				
			||||||
- run: npm ci
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
> If no valid `packageManager` field is detected in the `package.json` file, caching will remain disabled unless explicitly configured.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
The action defaults to search for the dependency file (`package-lock.json`, `npm-shrinkwrap.json` or `yarn.lock`) in the repository root, and uses its hash as a part of the cache key. Use `cache-dependency-path` for cases when multiple dependency files are used, or they are located in different subdirectories.
 | 
					The action defaults to search for the dependency file (`package-lock.json`, `npm-shrinkwrap.json` or `yarn.lock`) in the repository root, and uses its hash as a part of the cache key. Use `cache-dependency-path` for cases when multiple dependency files are used, or they are located in different subdirectories.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -159,8 +147,8 @@ See the examples of using cache for `yarn`/`pnpm` and `cache-dependency-path` in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 20
 | 
					    node-version: 20
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
@@ -172,8 +160,8 @@ steps:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: 20
 | 
					    node-version: 20
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
@@ -193,9 +181,9 @@ jobs:
 | 
				
			|||||||
        node: [ 14, 16, 18 ]
 | 
					        node: [ 14, 16, 18 ]
 | 
				
			||||||
    name: Node ${{ matrix.node }} sample
 | 
					    name: Node ${{ matrix.node }} sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - name: Setup node
 | 
					      - name: Setup node
 | 
				
			||||||
        uses: actions/setup-node@v5
 | 
					        uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: ${{ matrix.node }}
 | 
					          node-version: ${{ matrix.node }}
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -209,7 +197,7 @@ jobs:
 | 
				
			|||||||
To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action:
 | 
					To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
uses: actions/setup-node@v5
 | 
					uses: actions/setup-node@v4
 | 
				
			||||||
with:
 | 
					with:
 | 
				
			||||||
  token: ${{ secrets.GH_DOTCOM_TOKEN }}
 | 
					  token: ${{ secrets.GH_DOTCOM_TOKEN }}
 | 
				
			||||||
  node-version: 20
 | 
					  node-version: 20
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
v24
 | 
					v20
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
nodejs 24.0.0
 | 
					nodejs 20.0.0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
node 24.0.0
 | 
					node 20.0.0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,6 @@
 | 
				
			|||||||
    "node": "^14.0.0"
 | 
					    "node": "^14.0.0"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "volta": {
 | 
					  "volta": {
 | 
				
			||||||
    "node": "24.0.0"
 | 
					    "node": "20.0.0"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "engines": {
 | 
					  "engines": {
 | 
				
			||||||
    "node": "^24.0.0"
 | 
					    "node": "^20.0.0"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,7 +20,6 @@ describe('main tests', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  let infoSpy: jest.SpyInstance;
 | 
					  let infoSpy: jest.SpyInstance;
 | 
				
			||||||
  let warningSpy: jest.SpyInstance;
 | 
					  let warningSpy: jest.SpyInstance;
 | 
				
			||||||
  let saveStateSpy: jest.SpyInstance;
 | 
					 | 
				
			||||||
  let inSpy: jest.SpyInstance;
 | 
					  let inSpy: jest.SpyInstance;
 | 
				
			||||||
  let setOutputSpy: jest.SpyInstance;
 | 
					  let setOutputSpy: jest.SpyInstance;
 | 
				
			||||||
  let startGroupSpy: jest.SpyInstance;
 | 
					  let startGroupSpy: jest.SpyInstance;
 | 
				
			||||||
@@ -54,8 +53,6 @@ describe('main tests', () => {
 | 
				
			|||||||
    setOutputSpy.mockImplementation(() => {});
 | 
					    setOutputSpy.mockImplementation(() => {});
 | 
				
			||||||
    warningSpy = jest.spyOn(core, 'warning');
 | 
					    warningSpy = jest.spyOn(core, 'warning');
 | 
				
			||||||
    warningSpy.mockImplementation(() => {});
 | 
					    warningSpy.mockImplementation(() => {});
 | 
				
			||||||
    saveStateSpy = jest.spyOn(core, 'saveState');
 | 
					 | 
				
			||||||
    saveStateSpy.mockImplementation(() => {});
 | 
					 | 
				
			||||||
    startGroupSpy = jest.spyOn(core, 'startGroup');
 | 
					    startGroupSpy = jest.spyOn(core, 'startGroup');
 | 
				
			||||||
    startGroupSpy.mockImplementation(() => {});
 | 
					    startGroupSpy.mockImplementation(() => {});
 | 
				
			||||||
    endGroupSpy = jest.spyOn(core, 'endGroup');
 | 
					    endGroupSpy = jest.spyOn(core, 'endGroup');
 | 
				
			||||||
@@ -283,65 +280,4 @@ describe('main tests', () => {
 | 
				
			|||||||
      );
 | 
					      );
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					 | 
				
			||||||
  describe('cache feature tests', () => {
 | 
					 | 
				
			||||||
    it('Should enable caching with the resolved package manager from packageManager field in package.json when the cache input is not provided', async () => {
 | 
					 | 
				
			||||||
      inputs['package-manager-cache'] = 'true';
 | 
					 | 
				
			||||||
      inputs['cache'] = ''; // No cache input is provided
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      inSpy.mockImplementation(name => inputs[name]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
					 | 
				
			||||||
      readFileSpy.mockImplementation(() =>
 | 
					 | 
				
			||||||
        JSON.stringify({
 | 
					 | 
				
			||||||
          packageManager: 'yarn@3.2.0'
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      await main.run();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      expect(saveStateSpy).toHaveBeenCalledWith(expect.anything(), 'yarn');
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    it('Should not enable caching if the packageManager field is missing in package.json and the cache input is not provided', async () => {
 | 
					 | 
				
			||||||
      inputs['package-manager-cache'] = 'true';
 | 
					 | 
				
			||||||
      inputs['cache'] = ''; // No cache input is provided
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      inSpy.mockImplementation(name => inputs[name]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      const readFileSpy = jest.spyOn(fs, 'readFileSync');
 | 
					 | 
				
			||||||
      readFileSpy.mockImplementation(() =>
 | 
					 | 
				
			||||||
        JSON.stringify({
 | 
					 | 
				
			||||||
          //packageManager field is not present
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      await main.run();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      expect(saveStateSpy).not.toHaveBeenCalled();
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    it('Should skip caching when package-manager-cache is false', async () => {
 | 
					 | 
				
			||||||
      inputs['package-manager-cache'] = 'false';
 | 
					 | 
				
			||||||
      inputs['cache'] = ''; // No cache input is provided
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      inSpy.mockImplementation(name => inputs[name]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      await main.run();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      expect(saveStateSpy).not.toHaveBeenCalled();
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    it('Should enable caching with cache input explicitly provided', async () => {
 | 
					 | 
				
			||||||
      inputs['package-manager-cache'] = 'true';
 | 
					 | 
				
			||||||
      inputs['cache'] = 'npm'; // Explicit cache input provided
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      inSpy.mockImplementation(name => inputs[name]);
 | 
					 | 
				
			||||||
      isCacheActionAvailable.mockReturnValue(true);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      await main.run();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      expect(saveStateSpy).toHaveBeenCalledWith(expect.anything(), 'npm');
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,13 +7,8 @@ fi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
node_version="$(node --version)"
 | 
					node_version="$(node --version)"
 | 
				
			||||||
echo "Found node version '$node_version'"
 | 
					echo "Found node version '$node_version'"
 | 
				
			||||||
 | 
					if [ -z "$(echo $node_version | grep --fixed-strings v$1)" ]; then
 | 
				
			||||||
# Extract the major version from the node version (remove the 'v' prefix)
 | 
					  echo "Unexpected version"
 | 
				
			||||||
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
 | 
					  exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,9 +23,6 @@ inputs:
 | 
				
			|||||||
    default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
 | 
					    default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
 | 
				
			||||||
  cache:
 | 
					  cache:
 | 
				
			||||||
    description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
 | 
					    description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
 | 
				
			||||||
  package-manager-cache:
 | 
					 | 
				
			||||||
    description: 'Set to false to disable automatic caching based on the package manager field in package.json. By default, caching is enabled if the package manager field is present.'
 | 
					 | 
				
			||||||
    default: true
 | 
					 | 
				
			||||||
  cache-dependency-path:
 | 
					  cache-dependency-path:
 | 
				
			||||||
    description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
 | 
					    description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
 | 
				
			||||||
  mirror:
 | 
					  mirror:
 | 
				
			||||||
@@ -40,7 +37,7 @@ outputs:
 | 
				
			|||||||
  node-version:
 | 
					  node-version:
 | 
				
			||||||
    description: 'The installed node version.'
 | 
					    description: 'The installed node version.'
 | 
				
			||||||
runs:
 | 
					runs:
 | 
				
			||||||
  using: 'node24'
 | 
					  using: 'node20'
 | 
				
			||||||
  main: 'dist/setup/index.js'
 | 
					  main: 'dist/setup/index.js'
 | 
				
			||||||
  post: 'dist/cache-save/index.js'
 | 
					  post: 'dist/cache-save/index.js'
 | 
				
			||||||
  post-if: success()
 | 
					  post-if: success()
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1382
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1382
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										4558
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4558
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -45,8 +45,8 @@ If `check-latest` is set to `true`, the action first checks if the cached versio
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '16'
 | 
					    node-version: '16'
 | 
				
			||||||
    check-latest: true
 | 
					    check-latest: true
 | 
				
			||||||
@@ -63,8 +63,8 @@ See [supported version syntax](https://github.com/actions/setup-node#supported-v
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version-file: '.nvmrc'
 | 
					    node-version-file: '.nvmrc'
 | 
				
			||||||
- run: npm ci
 | 
					- run: npm ci
 | 
				
			||||||
@@ -97,8 +97,8 @@ jobs:
 | 
				
			|||||||
    runs-on: windows-latest
 | 
					    runs-on: windows-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - uses: actions/setup-node@v5
 | 
					      - uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '14'
 | 
					          node-version: '14'
 | 
				
			||||||
          architecture: 'x64' # optional, x64 or x86. If not specified, x64 will be used by default
 | 
					          architecture: 'x64' # optional, x64 or x86. If not specified, x64 will be used by default
 | 
				
			||||||
@@ -118,8 +118,8 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - uses: actions/setup-node@v5
 | 
					      - uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '20.0.0-v8-canary' # it will install the latest v8 canary release for node 20.0.0
 | 
					          node-version: '20.0.0-v8-canary' # it will install the latest v8 canary release for node 20.0.0
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -133,8 +133,8 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - uses: actions/setup-node@v5
 | 
					      - uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '20-v8-canary' # it will install the latest v8 canary release for node 20
 | 
					          node-version: '20-v8-canary' # it will install the latest v8 canary release for node 20
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -149,8 +149,8 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - uses: actions/setup-node@v5
 | 
					      - uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: 'v20.1.1-v8-canary20221103f7e2421e91'
 | 
					          node-version: 'v20.1.1-v8-canary20221103f7e2421e91'
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -169,8 +169,8 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - uses: actions/setup-node@v5
 | 
					      - uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '16-nightly' # it will install the latest nightly release for node 16
 | 
					          node-version: '16-nightly' # it will install the latest nightly release for node 16
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -185,8 +185,8 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - uses: actions/setup-node@v5
 | 
					      - uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '16.0.0-nightly' # it will install the latest nightly release for node 16.0.0
 | 
					          node-version: '16.0.0-nightly' # it will install the latest nightly release for node 16.0.0
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -201,8 +201,8 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - uses: actions/setup-node@v5
 | 
					      - uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '16.0.0-nightly20210420a0261d231c'
 | 
					          node-version: '16.0.0-nightly20210420a0261d231c'
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -219,8 +219,8 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Node sample
 | 
					    name: Node sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - uses: actions/setup-node@v5
 | 
					      - uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: '16.0.0-rc.1'
 | 
					          node-version: '16.0.0-rc.1'
 | 
				
			||||||
      - run: npm ci
 | 
					      - run: npm ci
 | 
				
			||||||
@@ -236,8 +236,8 @@ The action follows [actions/cache](https://github.com/actions/cache/blob/main/ex
 | 
				
			|||||||
Yarn caching handles both yarn versions: 1 or 2.
 | 
					Yarn caching handles both yarn versions: 1 or 2.
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14'
 | 
					    node-version: '14'
 | 
				
			||||||
    cache: 'yarn'
 | 
					    cache: 'yarn'
 | 
				
			||||||
@@ -255,11 +255,11 @@ steps:
 | 
				
			|||||||
# NOTE: pnpm caching support requires pnpm version >= 6.10.0
 | 
					# NOTE: pnpm caching support requires pnpm version >= 6.10.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: pnpm/action-setup@v2
 | 
					- uses: pnpm/action-setup@v2
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    version: 6.32.9
 | 
					    version: 6.32.9
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14'
 | 
					    node-version: '14'
 | 
				
			||||||
    cache: 'pnpm'
 | 
					    cache: 'pnpm'
 | 
				
			||||||
@@ -274,8 +274,8 @@ steps:
 | 
				
			|||||||
**Using wildcard patterns to cache dependencies**
 | 
					**Using wildcard patterns to cache dependencies**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14'
 | 
					    node-version: '14'
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
@@ -287,8 +287,8 @@ steps:
 | 
				
			|||||||
**Using a list of file paths to cache dependencies**
 | 
					**Using a list of file paths to cache dependencies**
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14'
 | 
					    node-version: '14'
 | 
				
			||||||
    cache: 'npm'
 | 
					    cache: 'npm'
 | 
				
			||||||
@@ -324,9 +324,9 @@ jobs:
 | 
				
			|||||||
            architecture: x86
 | 
					            architecture: x86
 | 
				
			||||||
    name: Node ${{ matrix.node_version }} - ${{ matrix.architecture }} on ${{ matrix.os }}
 | 
					    name: Node ${{ matrix.node_version }} - ${{ matrix.architecture }} on ${{ matrix.os }}
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v5
 | 
					      - uses: actions/checkout@v4
 | 
				
			||||||
      - name: Setup node
 | 
					      - name: Setup node
 | 
				
			||||||
        uses: actions/setup-node@v5
 | 
					        uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: ${{ matrix.node_version }}
 | 
					          node-version: ${{ matrix.node_version }}
 | 
				
			||||||
          architecture: ${{ matrix.architecture }}
 | 
					          architecture: ${{ matrix.architecture }}
 | 
				
			||||||
@@ -337,8 +337,8 @@ jobs:
 | 
				
			|||||||
## Publish to npmjs and GPR with npm
 | 
					## Publish to npmjs and GPR with npm
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '14.x'
 | 
				
			||||||
    registry-url: 'https://registry.npmjs.org'
 | 
					    registry-url: 'https://registry.npmjs.org'
 | 
				
			||||||
@@ -346,7 +346,7 @@ steps:
 | 
				
			|||||||
- run: npm publish
 | 
					- run: npm publish
 | 
				
			||||||
  env:
 | 
					  env:
 | 
				
			||||||
    NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    registry-url: 'https://npm.pkg.github.com'
 | 
					    registry-url: 'https://npm.pkg.github.com'
 | 
				
			||||||
- run: npm publish
 | 
					- run: npm publish
 | 
				
			||||||
@@ -357,8 +357,8 @@ steps:
 | 
				
			|||||||
## Publish to npmjs and GPR with yarn
 | 
					## Publish to npmjs and GPR with yarn
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '14.x'
 | 
				
			||||||
    registry-url: <registry url>
 | 
					    registry-url: <registry url>
 | 
				
			||||||
@@ -366,7 +366,7 @@ steps:
 | 
				
			|||||||
- run: yarn publish
 | 
					- run: yarn publish
 | 
				
			||||||
  env:
 | 
					  env:
 | 
				
			||||||
    NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }}
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }}
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    registry-url: 'https://npm.pkg.github.com'
 | 
					    registry-url: 'https://npm.pkg.github.com'
 | 
				
			||||||
- run: yarn publish
 | 
					- run: yarn publish
 | 
				
			||||||
@@ -377,8 +377,8 @@ steps:
 | 
				
			|||||||
## Use private packages
 | 
					## Use private packages
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '14.x'
 | 
				
			||||||
    registry-url: 'https://registry.npmjs.org'
 | 
					    registry-url: 'https://registry.npmjs.org'
 | 
				
			||||||
@@ -397,8 +397,8 @@ Below you can find a sample "Setup .yarnrc.yml" step, that is going to allow you
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v5
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '14.x'
 | 
				
			||||||
- name: Setup .yarnrc.yml
 | 
					- name: Setup .yarnrc.yml
 | 
				
			||||||
@@ -427,7 +427,7 @@ It is possible to specify a token to authenticate with the mirror using the `mir
 | 
				
			|||||||
The token will be passed as a bearer token in the `Authorization` header.
 | 
					The token will be passed as a bearer token in the `Authorization` header.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- uses: actions/setup-node@v5
 | 
					- uses: actions/setup-node@v4
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '14.x'
 | 
					    node-version: '14.x'
 | 
				
			||||||
    mirror: 'https://nodejs.org/dist'
 | 
					    mirror: 'https://nodejs.org/dist'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										25
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,12 +1,12 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "setup-node",
 | 
					  "name": "setup-node",
 | 
				
			||||||
  "version": "5.0.0",
 | 
					  "version": "4.0.0",
 | 
				
			||||||
  "lockfileVersion": 3,
 | 
					  "lockfileVersion": 3,
 | 
				
			||||||
  "requires": true,
 | 
					  "requires": true,
 | 
				
			||||||
  "packages": {
 | 
					  "packages": {
 | 
				
			||||||
    "": {
 | 
					    "": {
 | 
				
			||||||
      "name": "setup-node",
 | 
					      "name": "setup-node",
 | 
				
			||||||
      "version": "5.0.0",
 | 
					      "version": "4.0.0",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/cache": "^4.0.3",
 | 
					        "@actions/cache": "^4.0.3",
 | 
				
			||||||
@@ -22,7 +22,7 @@
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
      "devDependencies": {
 | 
					      "devDependencies": {
 | 
				
			||||||
        "@types/jest": "^29.5.14",
 | 
					        "@types/jest": "^29.5.14",
 | 
				
			||||||
        "@types/node": "^24.1.0",
 | 
					        "@types/node": "^20.11.25",
 | 
				
			||||||
        "@types/semver": "^7.5.8",
 | 
					        "@types/semver": "^7.5.8",
 | 
				
			||||||
        "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
					        "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
				
			||||||
        "@typescript-eslint/parser": "^5.54.0",
 | 
					        "@typescript-eslint/parser": "^5.54.0",
 | 
				
			||||||
@@ -37,9 +37,6 @@
 | 
				
			|||||||
        "prettier": "^2.8.4",
 | 
					        "prettier": "^2.8.4",
 | 
				
			||||||
        "ts-jest": "^29.1.2",
 | 
					        "ts-jest": "^29.1.2",
 | 
				
			||||||
        "typescript": "^5.4.2"
 | 
					        "typescript": "^5.4.2"
 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=24.0.0"
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@aashutoshrathi/word-wrap": {
 | 
					    "node_modules/@aashutoshrathi/word-wrap": {
 | 
				
			||||||
@@ -1783,12 +1780,11 @@
 | 
				
			|||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node": {
 | 
					    "node_modules/@types/node": {
 | 
				
			||||||
      "version": "24.1.0",
 | 
					      "version": "20.11.25",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz",
 | 
				
			||||||
      "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==",
 | 
					      "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==",
 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "undici-types": "~7.8.0"
 | 
					        "undici-types": "~5.26.4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/node-fetch": {
 | 
					    "node_modules/@types/node-fetch": {
 | 
				
			||||||
@@ -5556,10 +5552,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/undici-types": {
 | 
					    "node_modules/undici-types": {
 | 
				
			||||||
      "version": "7.8.0",
 | 
					      "version": "5.26.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
 | 
				
			||||||
      "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
 | 
					      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
 | 
				
			||||||
      "license": "MIT"
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/universal-user-agent": {
 | 
					    "node_modules/universal-user-agent": {
 | 
				
			||||||
      "version": "6.0.1",
 | 
					      "version": "6.0.1",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "setup-node",
 | 
					  "name": "setup-node",
 | 
				
			||||||
  "version": "5.0.0",
 | 
					  "version": "4.0.0",
 | 
				
			||||||
  "private": true,
 | 
					  "private": true,
 | 
				
			||||||
  "description": "setup node action",
 | 
					  "description": "setup node action",
 | 
				
			||||||
  "main": "lib/setup-node.js",
 | 
					  "main": "lib/setup-node.js",
 | 
				
			||||||
  "engines": {
 | 
					 | 
				
			||||||
    "node": ">=24.0.0"
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "build": "ncc build -o dist/setup src/setup-node.ts && ncc build -o dist/cache-save src/cache-save.ts",
 | 
					    "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}\"",
 | 
					    "format": "prettier --no-error-on-unmatched-pattern --config ./.prettierrc.js --write \"**/*.{ts,yml,yaml}\"",
 | 
				
			||||||
@@ -41,7 +38,7 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@types/jest": "^29.5.14",
 | 
					    "@types/jest": "^29.5.14",
 | 
				
			||||||
    "@types/node": "^24.1.0",
 | 
					    "@types/node": "^20.11.25",
 | 
				
			||||||
    "@types/semver": "^7.5.8",
 | 
					    "@types/semver": "^7.5.8",
 | 
				
			||||||
    "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
					    "@typescript-eslint/eslint-plugin": "^5.54.0",
 | 
				
			||||||
    "@typescript-eslint/parser": "^5.54.0",
 | 
					    "@typescript-eslint/parser": "^5.54.0",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,6 @@ import {getPackageManagerInfo} from './cache-utils';
 | 
				
			|||||||
// Catch and log any unhandled exceptions.  These exceptions can leak out of the uploadChunk method in
 | 
					// Catch and log any unhandled exceptions.  These exceptions can leak out of the uploadChunk method in
 | 
				
			||||||
// @actions/toolkit when a failed upload closes the file descriptor causing any in-process reads to
 | 
					// @actions/toolkit when a failed upload closes the file descriptor causing any in-process reads to
 | 
				
			||||||
// throw an uncaught exception.  Instead of failing this action, just warn.
 | 
					// throw an uncaught exception.  Instead of failing this action, just warn.
 | 
				
			||||||
 | 
					 | 
				
			||||||
process.on('uncaughtException', e => {
 | 
					process.on('uncaughtException', e => {
 | 
				
			||||||
  const warningPrefix = '[warning]';
 | 
					  const warningPrefix = '[warning]';
 | 
				
			||||||
  core.info(`${warningPrefix}${e.message}`);
 | 
					  core.info(`${warningPrefix}${e.message}`);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										34
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								src/main.ts
									
									
									
									
									
								
							@@ -1,7 +1,6 @@
 | 
				
			|||||||
import * as core from '@actions/core';
 | 
					import * as core from '@actions/core';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import os from 'os';
 | 
					import os from 'os';
 | 
				
			||||||
import fs from 'fs';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import * as auth from './authutil';
 | 
					import * as auth from './authutil';
 | 
				
			||||||
import * as path from 'path';
 | 
					import * as path from 'path';
 | 
				
			||||||
@@ -21,9 +20,6 @@ export async function run() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    let arch = core.getInput('architecture');
 | 
					    let arch = core.getInput('architecture');
 | 
				
			||||||
    const cache = core.getInput('cache');
 | 
					    const cache = core.getInput('cache');
 | 
				
			||||||
    const packagemanagercache =
 | 
					 | 
				
			||||||
      (core.getInput('package-manager-cache') || 'true').toUpperCase() ===
 | 
					 | 
				
			||||||
      'TRUE';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // if architecture supplied but node-version is not
 | 
					    // if architecture supplied but node-version is not
 | 
				
			||||||
    // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant.
 | 
					    // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant.
 | 
				
			||||||
@@ -67,14 +63,10 @@ export async function run() {
 | 
				
			|||||||
      auth.configAuthentication(registryUrl, alwaysAuth);
 | 
					      auth.configAuthentication(registryUrl, alwaysAuth);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const resolvedPackageManager = getNameFromPackageManagerField();
 | 
					 | 
				
			||||||
    const cacheDependencyPath = core.getInput('cache-dependency-path');
 | 
					 | 
				
			||||||
    if (cache && isCacheFeatureAvailable()) {
 | 
					    if (cache && isCacheFeatureAvailable()) {
 | 
				
			||||||
      core.saveState(State.CachePackageManager, cache);
 | 
					      core.saveState(State.CachePackageManager, cache);
 | 
				
			||||||
 | 
					      const cacheDependencyPath = core.getInput('cache-dependency-path');
 | 
				
			||||||
      await restoreCache(cache, cacheDependencyPath);
 | 
					      await restoreCache(cache, cacheDependencyPath);
 | 
				
			||||||
    } else if (resolvedPackageManager && packagemanagercache) {
 | 
					 | 
				
			||||||
      core.saveState(State.CachePackageManager, resolvedPackageManager);
 | 
					 | 
				
			||||||
      await restoreCache(resolvedPackageManager, cacheDependencyPath);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const matchersPath = path.join(__dirname, '../..', '.github');
 | 
					    const matchersPath = path.join(__dirname, '../..', '.github');
 | 
				
			||||||
@@ -125,27 +117,3 @@ function resolveVersionInput(): string {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  return version;
 | 
					  return version;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
export function getNameFromPackageManagerField(): string | undefined {
 | 
					 | 
				
			||||||
  // Check packageManager field in package.json
 | 
					 | 
				
			||||||
  const SUPPORTED_PACKAGE_MANAGERS = ['npm', 'yarn', 'pnpm'];
 | 
					 | 
				
			||||||
  try {
 | 
					 | 
				
			||||||
    const packageJson = JSON.parse(
 | 
					 | 
				
			||||||
      fs.readFileSync(
 | 
					 | 
				
			||||||
        path.join(process.env.GITHUB_WORKSPACE!, 'package.json'),
 | 
					 | 
				
			||||||
        'utf-8'
 | 
					 | 
				
			||||||
      )
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
    const pm = packageJson.packageManager;
 | 
					 | 
				
			||||||
    if (typeof pm === 'string') {
 | 
					 | 
				
			||||||
      const regex = new RegExp(
 | 
					 | 
				
			||||||
        `^(?:\\^)?(${SUPPORTED_PACKAGE_MANAGERS.join('|')})@`
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
      const match = pm.match(regex);
 | 
					 | 
				
			||||||
      return match ? match[1] : undefined;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return undefined;
 | 
					 | 
				
			||||||
  } catch (err) {
 | 
					 | 
				
			||||||
    return undefined;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user