mirror of
				https://gitea.com/actions/setup-node.git
				synced 2025-11-02 07:48:42 +00:00 
			
		
		
		
	Compare commits
	
		
			15 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					eeb10cff27 | ||
| 
						 | 
					ed1a46e9f2 | ||
| 
						 | 
					daff393d43 | ||
| 
						 | 
					b14573ddb9 | ||
| 
						 | 
					7569de03e7 | ||
| 
						 | 
					b20a2561b9 | ||
| 
						 | 
					ea3459bb45 | ||
| 
						 | 
					141334fcd1 | ||
| 
						 | 
					808c8f917f | ||
| 
						 | 
					fd1b409bc3 | ||
| 
						 | 
					9a03ebd9cc | ||
| 
						 | 
					45e544a71a | ||
| 
						 | 
					8c66f89aef | ||
| 
						 | 
					3601f2a33e | ||
| 
						 | 
					4d62fafc05 | 
							
								
								
									
										10
									
								
								.github/workflows/versions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/versions.yml
									
									
									
									
										vendored
									
									
								
							@@ -35,13 +35,21 @@ jobs:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ubuntu-latest, windows-latest, macos-latest]
 | 
			
		||||
        node-version: [lts/dubnium, lts/erbium, lts/fermium, lts/*]
 | 
			
		||||
        node-version: [lts/dubnium, lts/erbium, lts/fermium, lts/*, lts/-1]
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v3
 | 
			
		||||
      - name: Setup Node
 | 
			
		||||
        uses: ./
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: ${{ matrix.node-version }}
 | 
			
		||||
          check-latest: true
 | 
			
		||||
      - if: runner.os != 'Windows'
 | 
			
		||||
        name: Verify node and npm
 | 
			
		||||
        run: |
 | 
			
		||||
          . "$NVM_DIR/nvm.sh"
 | 
			
		||||
          [[ $(nvm version-remote "${{ matrix.node-version }}") =~ ^v([^.]+) ]]
 | 
			
		||||
          __tests__/verify-node.sh "${BASH_REMATCH[1]}"
 | 
			
		||||
        shell: bash
 | 
			
		||||
 | 
			
		||||
  manifest:
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							@@ -35,12 +35,12 @@ For information regarding locally cached versions of Node.js on GitHub hosted ru
 | 
			
		||||
 | 
			
		||||
### Supported version syntax
 | 
			
		||||
 | 
			
		||||
The `node-version` input supports the following syntax:
 | 
			
		||||
The `node-version` input supports the following values:
 | 
			
		||||
 | 
			
		||||
major versions: `12`, `14`, `16`
 | 
			
		||||
more specific versions: `10.15`, `14.2.0`, `16.3.0`
 | 
			
		||||
nvm lts syntax: `lts/erbium`, `lts/fermium`, `lts/*`
 | 
			
		||||
latest release: `latest`/`current`/`node`
 | 
			
		||||
 - Major versions: `12`, `14`, `16`
 | 
			
		||||
 - More specific versions: `10.15`, `14.2.0`, `16.3.0`
 | 
			
		||||
 - NVM LTS syntax: `lts/erbium`, `lts/fermium`, `lts/*`, `lts/-n`
 | 
			
		||||
 - Latest release: `latest`/`current`/`node`
 | 
			
		||||
 | 
			
		||||
**Note:** Since the latest release will not be cached always, there is possibility of hitting rate limit when downloading from dist
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,157 +1,183 @@
 | 
			
		||||
[
 | 
			
		||||
    {
 | 
			
		||||
      "version": "14.0.0",
 | 
			
		||||
      "stable": true,
 | 
			
		||||
      "lts": "Fermium",
 | 
			
		||||
      "release_url": "https://github.com/actions/node-versions/releases/tag/14.0.0-20200423.30",
 | 
			
		||||
      "files": [
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-14.0.0-darwin-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "darwin",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/14.0.0-20200423.30/node-14.0.0-darwin-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-14.0.0-linux-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "linux",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/14.0.0-20200423.30/node-14.0.0-linux-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-14.0.0-win32-x64.zip",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "win32",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/14.0.0-20200423.30/node-14.0.0-win32-x64.zip"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "version": "13.13.0",
 | 
			
		||||
      "stable": true,
 | 
			
		||||
      "release_url": "https://github.com/actions/node-versions/releases/tag/13.13.0-20200423.29",
 | 
			
		||||
      "files": [
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-13.13.0-darwin-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "darwin",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/13.13.0-20200423.29/node-13.13.0-darwin-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-13.13.0-linux-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "linux",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/13.13.0-20200423.29/node-13.13.0-linux-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-13.13.0-win32-x64.zip",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "win32",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/13.13.0-20200423.29/node-13.13.0-win32-x64.zip"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "version": "12.16.2",
 | 
			
		||||
      "stable": true,
 | 
			
		||||
      "lts": "Erbium",
 | 
			
		||||
      "release_url": "https://github.com/actions/node-versions/releases/tag/12.16.2-20200423.28",
 | 
			
		||||
      "files": [
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-12.16.2-darwin-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "darwin",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-darwin-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-12.16.2-linux-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "linux",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-12.16.2-win32-x64.zip",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "win32",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-win32-x64.zip"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "version": "10.20.1",
 | 
			
		||||
      "stable": true,
 | 
			
		||||
      "lts": "Dubnium",
 | 
			
		||||
      "release_url": "https://github.com/actions/node-versions/releases/tag/10.20.1-20200423.27",
 | 
			
		||||
      "files": [
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-10.20.1-darwin-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "darwin",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/10.20.1-20200423.27/node-10.20.1-darwin-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-10.20.1-linux-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "linux",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/10.20.1-20200423.27/node-10.20.1-linux-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-10.20.1-win32-x64.zip",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "win32",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/10.20.1-20200423.27/node-10.20.1-win32-x64.zip"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "version": "8.17.0",
 | 
			
		||||
      "stable": true,
 | 
			
		||||
      "lts": "Carbon",
 | 
			
		||||
      "release_url": "https://github.com/actions/node-versions/releases/tag/8.17.0-20200423.26",
 | 
			
		||||
      "files": [
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-8.17.0-darwin-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "darwin",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/8.17.0-20200423.26/node-8.17.0-darwin-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-8.17.0-linux-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "linux",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/8.17.0-20200423.26/node-8.17.0-linux-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-8.17.0-win32-x64.zip",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "win32",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/8.17.0-20200423.26/node-8.17.0-win32-x64.zip"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "version": "6.17.1",
 | 
			
		||||
      "stable": true,
 | 
			
		||||
      "lts": "Boron",
 | 
			
		||||
      "release_url": "https://github.com/actions/node-versions/releases/tag/6.17.1-20200423.25",
 | 
			
		||||
      "files": [
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-6.17.1-darwin-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "darwin",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/6.17.1-20200423.25/node-6.17.1-darwin-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-6.17.1-linux-x64.tar.gz",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "linux",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/6.17.1-20200423.25/node-6.17.1-linux-x64.tar.gz"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "filename": "node-6.17.1-win32-x64.zip",
 | 
			
		||||
          "arch": "x64",
 | 
			
		||||
          "platform": "win32",
 | 
			
		||||
          "download_url": "https://github.com/actions/node-versions/releases/download/6.17.1-20200423.25/node-6.17.1-win32-x64.zip"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
  {
 | 
			
		||||
    "version": "14.0.0",
 | 
			
		||||
    "stable": true,
 | 
			
		||||
    "lts": "Fermium",
 | 
			
		||||
    "release_url": "https://github.com/actions/node-versions/releases/tag/14.0.0-20200507.99",
 | 
			
		||||
    "files": [
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-14.0.0-darwin-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "darwin",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/14.0.0-20200507.99/node-14.0.0-darwin-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-14.0.0-linux-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "linux",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/14.0.0-20200507.99/node-14.0.0-linux-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-14.0.0-win32-x64.7z",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "win32",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/14.0.0-20200507.99/node-14.0.0-win32-x64.7z"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "version": "13.13.0",
 | 
			
		||||
    "stable": true,
 | 
			
		||||
    "release_url": "https://github.com/actions/node-versions/releases/tag/13.13.0-20200507.97",
 | 
			
		||||
    "files": [
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-13.13.0-darwin-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "darwin",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/13.13.0-20200507.97/node-13.13.0-darwin-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-13.13.0-linux-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "linux",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/13.13.0-20200507.97/node-13.13.0-linux-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-13.13.0-win32-x64.7z",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "win32",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/13.13.0-20200507.97/node-13.13.0-win32-x64.7z"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "version": "12.16.2",
 | 
			
		||||
    "stable": true,
 | 
			
		||||
    "lts": "Erbium",
 | 
			
		||||
    "release_url": "https://github.com/actions/node-versions/releases/tag/12.16.2-20200507.95",
 | 
			
		||||
    "files": [
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-12.16.2-darwin-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "darwin",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/12.16.2-20200507.95/node-12.16.2-darwin-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-12.16.2-linux-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "linux",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/12.16.2-20200507.95/node-12.16.2-linux-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-12.16.2-win32-x64.7z",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "win32",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/12.16.2-20200507.95/node-12.16.2-win32-x64.7z"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "version": "12.0.0",
 | 
			
		||||
    "stable": true,
 | 
			
		||||
    "lts": "Erbium",
 | 
			
		||||
    "release_url": "https://github.com/actions/node-versions/releases/tag/12.0.0-20200507.71",
 | 
			
		||||
    "files": [
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-12.0.0-darwin-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "darwin",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/12.0.0-20200507.71/node-12.0.0-darwin-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-12.0.0-linux-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "linux",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/12.0.0-20200507.71/node-12.0.0-linux-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-12.0.0-win32-x64.7z",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "win32",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/12.0.0-20200507.71/node-12.0.0-win32-x64.7z"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "version": "10.20.1",
 | 
			
		||||
    "stable": true,
 | 
			
		||||
    "lts": "Dubnium",
 | 
			
		||||
    "release_url": "https://github.com/actions/node-versions/releases/tag/10.20.1-20200507.70",
 | 
			
		||||
    "files": [
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-10.20.1-darwin-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "darwin",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/10.20.1-20200507.70/node-10.20.1-darwin-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-10.20.1-linux-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "linux",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/10.20.1-20200507.70/node-10.20.1-linux-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-10.20.1-win32-x64.7z",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "win32",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/10.20.1-20200507.70/node-10.20.1-win32-x64.7z"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "version": "8.17.0",
 | 
			
		||||
    "stable": true,
 | 
			
		||||
    "lts": "Carbon",
 | 
			
		||||
    "release_url": "https://github.com/actions/node-versions/releases/tag/8.17.0-20200507.37",
 | 
			
		||||
    "files": [
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-8.17.0-darwin-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "darwin",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/8.17.0-20200507.37/node-8.17.0-darwin-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-8.17.0-linux-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "linux",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/8.17.0-20200507.37/node-8.17.0-linux-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-8.17.0-win32-x64.7z",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "win32",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/8.17.0-20200507.37/node-8.17.0-win32-x64.7z"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "version": "6.17.1",
 | 
			
		||||
    "stable": true,
 | 
			
		||||
    "lts": "Boron",
 | 
			
		||||
    "release_url": "https://github.com/actions/node-versions/releases/tag/6.17.1-20200529.2",
 | 
			
		||||
    "files": [
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-6.17.1-darwin-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "darwin",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/6.17.1-20200529.2/node-6.17.1-darwin-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-6.17.1-linux-x64.tar.gz",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "linux",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/6.17.1-20200529.2/node-6.17.1-linux-x64.tar.gz"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "filename": "node-6.17.1-win32-x64.7z",
 | 
			
		||||
        "arch": "x64",
 | 
			
		||||
        "platform": "win32",
 | 
			
		||||
        "download_url": "https://github.com/actions/node-versions/releases/download/6.17.1-20200529.2/node-6.17.1-win32-x64.7z"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 
 | 
			
		||||
@@ -126,7 +126,7 @@ describe('setup-node', () => {
 | 
			
		||||
      'mocktoken'
 | 
			
		||||
    );
 | 
			
		||||
    expect(versions).toBeDefined();
 | 
			
		||||
    expect(versions?.length).toBe(6);
 | 
			
		||||
    expect(versions?.length).toBe(7);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('can mock dist versions', async () => {
 | 
			
		||||
@@ -135,50 +135,28 @@ describe('setup-node', () => {
 | 
			
		||||
    expect(versions?.length).toBe(23);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('can find 12.16.2 from manifest on osx', async () => {
 | 
			
		||||
    os.platform = 'darwin';
 | 
			
		||||
    os.arch = 'x64';
 | 
			
		||||
    let versions: tc.IToolRelease[] | null = await tc.getManifestFromRepo(
 | 
			
		||||
      'actions',
 | 
			
		||||
      'node-versions',
 | 
			
		||||
      'mocktoken'
 | 
			
		||||
    );
 | 
			
		||||
    expect(versions).toBeDefined();
 | 
			
		||||
    let match = await tc.findFromManifest('12.16.2', true, versions);
 | 
			
		||||
    expect(match).toBeDefined();
 | 
			
		||||
    expect(match?.version).toBe('12.16.2');
 | 
			
		||||
    expect((match as any).lts).toBe('Erbium');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('can find 12 from manifest on linux', async () => {
 | 
			
		||||
    os.platform = 'linux';
 | 
			
		||||
    os.arch = 'x64';
 | 
			
		||||
    let versions: tc.IToolRelease[] | null = await tc.getManifestFromRepo(
 | 
			
		||||
      'actions',
 | 
			
		||||
      'node-versions',
 | 
			
		||||
      'mocktoken'
 | 
			
		||||
    );
 | 
			
		||||
    expect(versions).toBeDefined();
 | 
			
		||||
    let match = await tc.findFromManifest('12.16.2', true, versions);
 | 
			
		||||
    expect(match).toBeDefined();
 | 
			
		||||
    expect(match?.version).toBe('12.16.2');
 | 
			
		||||
    expect((match as any).lts).toBe('Erbium');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('can find 10 from manifest on windows', async () => {
 | 
			
		||||
    os.platform = 'win32';
 | 
			
		||||
    os.arch = 'x64';
 | 
			
		||||
    let versions: tc.IToolRelease[] | null = await tc.getManifestFromRepo(
 | 
			
		||||
      'actions',
 | 
			
		||||
      'node-versions',
 | 
			
		||||
      'mocktoken'
 | 
			
		||||
    );
 | 
			
		||||
    expect(versions).toBeDefined();
 | 
			
		||||
    let match = await tc.findFromManifest('10', true, versions);
 | 
			
		||||
    expect(match).toBeDefined();
 | 
			
		||||
    expect(match?.version).toBe('10.20.1');
 | 
			
		||||
    expect((match as any).lts).toBe('Dubnium');
 | 
			
		||||
  });
 | 
			
		||||
  it.each([
 | 
			
		||||
    ['12.16.2', 'darwin', '12.16.2', 'Erbium'],
 | 
			
		||||
    ['12', 'linux', '12.16.2', 'Erbium'],
 | 
			
		||||
    ['10', 'win32', '10.20.1', 'Dubnium'],
 | 
			
		||||
    ['*', 'linux', '14.0.0', 'Fermium']
 | 
			
		||||
  ])(
 | 
			
		||||
    'can find %s from manifest on %s',
 | 
			
		||||
    async (versionSpec, platform, expectedVersion, expectedLts) => {
 | 
			
		||||
      os.platform = platform;
 | 
			
		||||
      os.arch = 'x64';
 | 
			
		||||
      let versions: tc.IToolRelease[] | null = await tc.getManifestFromRepo(
 | 
			
		||||
        'actions',
 | 
			
		||||
        'node-versions',
 | 
			
		||||
        'mocktoken'
 | 
			
		||||
      );
 | 
			
		||||
      expect(versions).toBeDefined();
 | 
			
		||||
      let match = await tc.findFromManifest(versionSpec, true, versions);
 | 
			
		||||
      expect(match).toBeDefined();
 | 
			
		||||
      expect(match?.version).toBe(expectedVersion);
 | 
			
		||||
      expect((match as any).lts).toBe(expectedLts);
 | 
			
		||||
    }
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  //--------------------------------------------------
 | 
			
		||||
  // Found in cache tests
 | 
			
		||||
@@ -250,7 +228,7 @@ describe('setup-node', () => {
 | 
			
		||||
    inputs['token'] = 'faketoken';
 | 
			
		||||
 | 
			
		||||
    let expectedUrl =
 | 
			
		||||
      'https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz';
 | 
			
		||||
      'https://github.com/actions/node-versions/releases/download/12.16.2-20200507.95/node-12.16.2-linux-x64.tar.gz';
 | 
			
		||||
 | 
			
		||||
    // ... but not in the local cache
 | 
			
		||||
    findSpy.mockImplementation(() => '');
 | 
			
		||||
@@ -288,7 +266,7 @@ describe('setup-node', () => {
 | 
			
		||||
    inputs['token'] = 'faketoken';
 | 
			
		||||
 | 
			
		||||
    let expectedUrl =
 | 
			
		||||
      'https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz';
 | 
			
		||||
      'https://github.com/actions/node-versions/releases/download/12.16.2-20200507.95/node-12.16.2-linux-x64.tar.gz';
 | 
			
		||||
 | 
			
		||||
    // ... but not in the local cache
 | 
			
		||||
    findSpy.mockImplementation(() => '');
 | 
			
		||||
@@ -457,7 +435,7 @@ describe('setup-node', () => {
 | 
			
		||||
      exSpy.mockImplementation(async () => '/some/other/temp/path');
 | 
			
		||||
      cacheSpy.mockImplementation(async () => toolPath);
 | 
			
		||||
      const expectedUrl =
 | 
			
		||||
        'https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz';
 | 
			
		||||
        'https://github.com/actions/node-versions/releases/download/12.16.2-20200507.95/node-12.16.2-linux-x64.tar.gz';
 | 
			
		||||
 | 
			
		||||
      await main.run();
 | 
			
		||||
 | 
			
		||||
@@ -699,145 +677,102 @@ describe('setup-node', () => {
 | 
			
		||||
      inputs.stable = 'true';
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it('find latest LTS version and resolve it from local cache (lts/erbium)', async () => {
 | 
			
		||||
      // arrange
 | 
			
		||||
      inputs['node-version'] = 'lts/erbium';
 | 
			
		||||
    it.each([
 | 
			
		||||
      ['erbium', '12.16.2'],
 | 
			
		||||
      ['*', '14.0.0'],
 | 
			
		||||
      ['-1', '12.16.2']
 | 
			
		||||
    ])(
 | 
			
		||||
      'find latest LTS version and resolve it from local cache (lts/%s)',
 | 
			
		||||
      async (lts, expectedVersion) => {
 | 
			
		||||
        // arrange
 | 
			
		||||
        inputs['node-version'] = `lts/${lts}`;
 | 
			
		||||
 | 
			
		||||
      const toolPath = path.normalize('/cache/node/12.16.2/x64');
 | 
			
		||||
      findSpy.mockReturnValue(toolPath);
 | 
			
		||||
        const toolPath = path.normalize(`/cache/node/${expectedVersion}/x64`);
 | 
			
		||||
        findSpy.mockReturnValue(toolPath);
 | 
			
		||||
 | 
			
		||||
      // act
 | 
			
		||||
      await main.run();
 | 
			
		||||
        // act
 | 
			
		||||
        await main.run();
 | 
			
		||||
 | 
			
		||||
      // assert
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
        'Attempt to resolve LTS alias from manifest...'
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        'Getting manifest from actions/node-versions@main'
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `LTS alias 'erbium' for Node version 'lts/erbium'`
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `Found LTS release '12.16.2' for Node version 'lts/erbium'`
 | 
			
		||||
      );
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
 | 
			
		||||
      expect(cnSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
        // assert
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
          'Attempt to resolve LTS alias from manifest...'
 | 
			
		||||
        );
 | 
			
		||||
        expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
          'Getting manifest from actions/node-versions@main'
 | 
			
		||||
        );
 | 
			
		||||
        expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
 | 
			
		||||
        expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
          `LTS alias '${lts}' for Node version 'lts/${lts}'`
 | 
			
		||||
        );
 | 
			
		||||
        expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
          `Found LTS release '${expectedVersion}' for Node version 'lts/${lts}'`
 | 
			
		||||
        );
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
 | 
			
		||||
        expect(cnSpy).toHaveBeenCalledWith(
 | 
			
		||||
          `::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    it('find latest LTS version and install it from manifest (lts/erbium)', async () => {
 | 
			
		||||
      // arrange
 | 
			
		||||
      inputs['node-version'] = 'lts/erbium';
 | 
			
		||||
    it.each([
 | 
			
		||||
      [
 | 
			
		||||
        'erbium',
 | 
			
		||||
        '12.16.2',
 | 
			
		||||
        'https://github.com/actions/node-versions/releases/download/12.16.2-20200507.95/node-12.16.2-linux-x64.tar.gz'
 | 
			
		||||
      ],
 | 
			
		||||
      [
 | 
			
		||||
        '*',
 | 
			
		||||
        '14.0.0',
 | 
			
		||||
        'https://github.com/actions/node-versions/releases/download/14.0.0-20200507.99/node-14.0.0-linux-x64.tar.gz'
 | 
			
		||||
      ],
 | 
			
		||||
      [
 | 
			
		||||
        '-1',
 | 
			
		||||
        '12.16.2',
 | 
			
		||||
        'https://github.com/actions/node-versions/releases/download/12.16.2-20200507.95/node-12.16.2-linux-x64.tar.gz'
 | 
			
		||||
      ]
 | 
			
		||||
    ])(
 | 
			
		||||
      'find latest LTS version and install it from manifest (lts/%s)',
 | 
			
		||||
      async (lts, expectedVersion, expectedUrl) => {
 | 
			
		||||
        // arrange
 | 
			
		||||
        inputs['node-version'] = `lts/${lts}`;
 | 
			
		||||
 | 
			
		||||
      const toolPath = path.normalize('/cache/node/12.16.2/x64');
 | 
			
		||||
      findSpy.mockImplementation(() => '');
 | 
			
		||||
      dlSpy.mockImplementation(async () => '/some/temp/path');
 | 
			
		||||
      exSpy.mockImplementation(async () => '/some/other/temp/path');
 | 
			
		||||
      cacheSpy.mockImplementation(async () => toolPath);
 | 
			
		||||
      const expectedUrl =
 | 
			
		||||
        'https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz';
 | 
			
		||||
        const toolPath = path.normalize(`/cache/node/${expectedVersion}/x64`);
 | 
			
		||||
        findSpy.mockImplementation(() => '');
 | 
			
		||||
        dlSpy.mockImplementation(async () => '/some/temp/path');
 | 
			
		||||
        exSpy.mockImplementation(async () => '/some/other/temp/path');
 | 
			
		||||
        cacheSpy.mockImplementation(async () => toolPath);
 | 
			
		||||
        const expectedMajor = expectedVersion.split('.')[0];
 | 
			
		||||
 | 
			
		||||
      // act
 | 
			
		||||
      await main.run();
 | 
			
		||||
        // act
 | 
			
		||||
        await main.run();
 | 
			
		||||
 | 
			
		||||
      // assert
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
        'Attempt to resolve LTS alias from manifest...'
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        'Getting manifest from actions/node-versions@main'
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `LTS alias 'erbium' for Node version 'lts/erbium'`
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `Found LTS release '12.16.2' for Node version 'lts/erbium'`
 | 
			
		||||
      );
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith('Attempting to download 12...');
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `Acquiring 12.16.2 - ${os.arch} from ${expectedUrl}`
 | 
			
		||||
      );
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith('Extracting ...');
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith('Adding to the cache ...');
 | 
			
		||||
      expect(cnSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it('find latest LTS version and resolve it from local cache (lts/*)', async () => {
 | 
			
		||||
      // arrange
 | 
			
		||||
      inputs['node-version'] = 'lts/*';
 | 
			
		||||
 | 
			
		||||
      const toolPath = path.normalize('/cache/node/14.0.0/x64');
 | 
			
		||||
      findSpy.mockReturnValue(toolPath);
 | 
			
		||||
 | 
			
		||||
      // act
 | 
			
		||||
      await main.run();
 | 
			
		||||
 | 
			
		||||
      // assert
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
        'Attempt to resolve LTS alias from manifest...'
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        'Getting manifest from actions/node-versions@main'
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `LTS alias '*' for Node version 'lts/*'`
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `Found LTS release '14.0.0' for Node version 'lts/*'`
 | 
			
		||||
      );
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
 | 
			
		||||
      expect(cnSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it('find latest LTS version and install it from manifest (lts/*)', async () => {
 | 
			
		||||
      // arrange
 | 
			
		||||
      inputs['node-version'] = 'lts/*';
 | 
			
		||||
 | 
			
		||||
      const toolPath = path.normalize('/cache/node/14.0.0/x64');
 | 
			
		||||
      findSpy.mockImplementation(() => '');
 | 
			
		||||
      dlSpy.mockImplementation(async () => '/some/temp/path');
 | 
			
		||||
      exSpy.mockImplementation(async () => '/some/other/temp/path');
 | 
			
		||||
      cacheSpy.mockImplementation(async () => toolPath);
 | 
			
		||||
      const expectedUrl =
 | 
			
		||||
        'https://github.com/actions/node-versions/releases/download/14.0.0-20200423.30/node-14.0.0-linux-x64.tar.gz';
 | 
			
		||||
 | 
			
		||||
      // act
 | 
			
		||||
      await main.run();
 | 
			
		||||
 | 
			
		||||
      // assert
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
        'Attempt to resolve LTS alias from manifest...'
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        'Getting manifest from actions/node-versions@main'
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `LTS alias '*' for Node version 'lts/*'`
 | 
			
		||||
      );
 | 
			
		||||
      expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `Found LTS release '14.0.0' for Node version 'lts/*'`
 | 
			
		||||
      );
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith('Attempting to download 14...');
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `Acquiring 14.0.0 - ${os.arch} from ${expectedUrl}`
 | 
			
		||||
      );
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith('Extracting ...');
 | 
			
		||||
      expect(logSpy).toHaveBeenCalledWith('Adding to the cache ...');
 | 
			
		||||
      expect(cnSpy).toHaveBeenCalledWith(
 | 
			
		||||
        `::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
        // assert
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
          'Attempt to resolve LTS alias from manifest...'
 | 
			
		||||
        );
 | 
			
		||||
        expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
          'Getting manifest from actions/node-versions@main'
 | 
			
		||||
        );
 | 
			
		||||
        expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
 | 
			
		||||
        expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
          `LTS alias '${lts}' for Node version 'lts/${lts}'`
 | 
			
		||||
        );
 | 
			
		||||
        expect(dbgSpy).toHaveBeenCalledWith(
 | 
			
		||||
          `Found LTS release '${expectedVersion}' for Node version 'lts/${lts}'`
 | 
			
		||||
        );
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
          `Attempting to download ${expectedMajor}...`
 | 
			
		||||
        );
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith(
 | 
			
		||||
          `Acquiring ${expectedVersion} - ${os.arch} from ${expectedUrl}`
 | 
			
		||||
        );
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith('Extracting ...');
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith('Adding to the cache ...');
 | 
			
		||||
        expect(cnSpy).toHaveBeenCalledWith(
 | 
			
		||||
          `::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    it('fail with unable to parse LTS alias (lts/)', async () => {
 | 
			
		||||
      // arrange
 | 
			
		||||
@@ -935,4 +870,31 @@ describe('setup-node', () => {
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  describe('latest alias syntax from cache', () => {
 | 
			
		||||
    it.each(['latest', 'current', 'node'])(
 | 
			
		||||
      'download the %s version if alias is provided',
 | 
			
		||||
      async inputVersion => {
 | 
			
		||||
        // Arrange
 | 
			
		||||
        inputs['node-version'] = inputVersion;
 | 
			
		||||
        const expectedVersion = nodeTestDist[0];
 | 
			
		||||
 | 
			
		||||
        os.platform = 'darwin';
 | 
			
		||||
        os.arch = 'x64';
 | 
			
		||||
 | 
			
		||||
        const toolPath = path.normalize(
 | 
			
		||||
          `/cache/node/${expectedVersion.version}/x64`
 | 
			
		||||
        );
 | 
			
		||||
        findSpy.mockReturnValue(toolPath);
 | 
			
		||||
 | 
			
		||||
        // Act
 | 
			
		||||
        await main.run();
 | 
			
		||||
 | 
			
		||||
        // assert
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
 | 
			
		||||
 | 
			
		||||
        expect(logSpy).toHaveBeenCalledWith('getting latest node version...');
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										55103
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										55103
									
								
								dist/cache-save/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										74693
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										74693
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -19,12 +19,13 @@ Ensure that `package-lock.json` is always committed, use `npm ci` instead of `np
 | 
			
		||||
 | 
			
		||||
### Yarn
 | 
			
		||||
 | 
			
		||||
Ensure that `yarn.lock` is always committed, pass `--frozen-lockfile` to `yarn install` when installing packages.
 | 
			
		||||
To ensure that `yarn.lock` is always committed, use `yarn install --immutable` when installing packages.
 | 
			
		||||
 | 
			
		||||
**See also:**
 | 
			
		||||
- [Documentation of `yarn.lock`](https://classic.yarnpkg.com/en/docs/yarn-lock)
 | 
			
		||||
- [Documentation of `--frozen-lockfile` option](https://classic.yarnpkg.com/en/docs/cli/install#toc-yarn-install-frozen-lockfile)
 | 
			
		||||
- [QA - Should lockfiles be committed to the repoistory?](https://yarnpkg.com/getting-started/qa/#should-lockfiles-be-committed-to-the-repository)
 | 
			
		||||
- [Documentation of `yarn install`](https://yarnpkg.com/cli/install)
 | 
			
		||||
 | 
			
		||||
### PNPM
 | 
			
		||||
 | 
			
		||||
@@ -101,7 +102,7 @@ steps:
 | 
			
		||||
  with:
 | 
			
		||||
    node-version: '14'
 | 
			
		||||
    cache: 'yarn'
 | 
			
		||||
- run: yarn install --frozen-lockfile
 | 
			
		||||
- run: yarn install --frozen-lockfile # optional, --immutable
 | 
			
		||||
- run: yarn test
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										19
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -23,7 +23,7 @@
 | 
			
		||||
        "@types/jest": "^27.0.2",
 | 
			
		||||
        "@types/node": "^16.11.25",
 | 
			
		||||
        "@types/semver": "^6.0.0",
 | 
			
		||||
        "@zeit/ncc": "^0.21.0",
 | 
			
		||||
        "@vercel/ncc": "^0.33.4",
 | 
			
		||||
        "jest": "^27.2.5",
 | 
			
		||||
        "jest-circus": "^27.2.5",
 | 
			
		||||
        "prettier": "^1.19.1",
 | 
			
		||||
@@ -1535,11 +1535,10 @@
 | 
			
		||||
      "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@zeit/ncc": {
 | 
			
		||||
      "version": "0.21.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@zeit/ncc/-/ncc-0.21.0.tgz",
 | 
			
		||||
      "integrity": "sha512-RUMdvVK/w78oo+yBjruZltt0kJXYar2un/1bYQ2LuHG7GmFVm+QjxzEmySwREctaJdEnBvlMdUNWd9hXHxEI3g==",
 | 
			
		||||
      "deprecated": "@zeit/ncc is no longer maintained. Please use @vercel/ncc instead.",
 | 
			
		||||
    "node_modules/@vercel/ncc": {
 | 
			
		||||
      "version": "0.33.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.4.tgz",
 | 
			
		||||
      "integrity": "sha512-ln18hs7dMffelP47tpkaR+V5Tj6coykNyxJrlcmCormPqRQjB/Gv4cu2FfBG+PMzIfdZp2CLDsrrB1NPU22Qhg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "ncc": "dist/ncc/cli.js"
 | 
			
		||||
@@ -6347,10 +6346,10 @@
 | 
			
		||||
      "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@zeit/ncc": {
 | 
			
		||||
      "version": "0.21.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@zeit/ncc/-/ncc-0.21.0.tgz",
 | 
			
		||||
      "integrity": "sha512-RUMdvVK/w78oo+yBjruZltt0kJXYar2un/1bYQ2LuHG7GmFVm+QjxzEmySwREctaJdEnBvlMdUNWd9hXHxEI3g==",
 | 
			
		||||
    "@vercel/ncc": {
 | 
			
		||||
      "version": "0.33.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.33.4.tgz",
 | 
			
		||||
      "integrity": "sha512-ln18hs7dMffelP47tpkaR+V5Tj6coykNyxJrlcmCormPqRQjB/Gv4cu2FfBG+PMzIfdZp2CLDsrrB1NPU22Qhg==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "abab": {
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@
 | 
			
		||||
    "@types/jest": "^27.0.2",
 | 
			
		||||
    "@types/node": "^16.11.25",
 | 
			
		||||
    "@types/semver": "^6.0.0",
 | 
			
		||||
    "@zeit/ncc": "^0.21.0",
 | 
			
		||||
    "@vercel/ncc": "^0.33.4",
 | 
			
		||||
    "jest": "^27.2.5",
 | 
			
		||||
    "jest-circus": "^27.2.5",
 | 
			
		||||
    "prettier": "^1.19.1",
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,7 @@ export async function getNode(
 | 
			
		||||
) {
 | 
			
		||||
  // Store manifest data to avoid multiple calls
 | 
			
		||||
  let manifest: INodeRelease[] | undefined;
 | 
			
		||||
  let nodeVersions: INodeVersion[] | undefined;
 | 
			
		||||
  let osPlat: string = os.platform();
 | 
			
		||||
  let osArch: string = translateArchToDistUrl(arch);
 | 
			
		||||
 | 
			
		||||
@@ -49,6 +50,12 @@ export async function getNode(
 | 
			
		||||
    versionSpec = resolveLtsAliasFromManifest(versionSpec, stable, manifest);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (isLatestSyntax(versionSpec)) {
 | 
			
		||||
    nodeVersions = await getVersionsFromDist();
 | 
			
		||||
    versionSpec = await queryDistForMatch(versionSpec, arch, nodeVersions);
 | 
			
		||||
    core.info(`getting latest node version...`);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (checkLatest) {
 | 
			
		||||
    core.info('Attempt to resolve the latest version from manifest...');
 | 
			
		||||
    const resolvedVersion = await resolveVersionFromManifest(
 | 
			
		||||
@@ -119,7 +126,7 @@ export async function getNode(
 | 
			
		||||
    // Download from nodejs.org
 | 
			
		||||
    //
 | 
			
		||||
    if (!downloadPath) {
 | 
			
		||||
      info = await getInfoFromDist(versionSpec, arch);
 | 
			
		||||
      info = await getInfoFromDist(versionSpec, arch, nodeVersions);
 | 
			
		||||
      if (!info) {
 | 
			
		||||
        throw new Error(
 | 
			
		||||
          `Unable to find Node version '${versionSpec}' for platform ${osPlat} and architecture ${osArch}.`
 | 
			
		||||
@@ -216,13 +223,21 @@ function resolveLtsAliasFromManifest(
 | 
			
		||||
 | 
			
		||||
  core.debug(`LTS alias '${alias}' for Node version '${versionSpec}'`);
 | 
			
		||||
 | 
			
		||||
  // Supported formats are `lts/<alias>` and `lts/*`. Where asterisk means highest possible LTS.
 | 
			
		||||
  // Supported formats are `lts/<alias>`, `lts/*`, and `lts/-n`. Where asterisk means highest possible LTS and -n means the nth-highest.
 | 
			
		||||
  const n = Number(alias);
 | 
			
		||||
  const aliases = Object.fromEntries(
 | 
			
		||||
    manifest
 | 
			
		||||
      .filter(x => x.lts && x.stable === stable)
 | 
			
		||||
      .map(x => [x.lts!.toLowerCase(), x])
 | 
			
		||||
      .reverse()
 | 
			
		||||
  );
 | 
			
		||||
  const numbered = Object.values(aliases);
 | 
			
		||||
  const release =
 | 
			
		||||
    alias === '*'
 | 
			
		||||
      ? manifest.find(x => !!x.lts && x.stable === stable)
 | 
			
		||||
      : manifest.find(
 | 
			
		||||
          x => x.lts?.toLowerCase() === alias && x.stable === stable
 | 
			
		||||
        );
 | 
			
		||||
      ? numbered[numbered.length - 1]
 | 
			
		||||
      : n < 0
 | 
			
		||||
      ? numbered[numbered.length - 1 + n]
 | 
			
		||||
      : aliases[alias];
 | 
			
		||||
 | 
			
		||||
  if (!release) {
 | 
			
		||||
    throw new Error(
 | 
			
		||||
@@ -265,14 +280,18 @@ async function getInfoFromManifest(
 | 
			
		||||
 | 
			
		||||
async function getInfoFromDist(
 | 
			
		||||
  versionSpec: string,
 | 
			
		||||
  arch: string = os.arch()
 | 
			
		||||
  arch: string = os.arch(),
 | 
			
		||||
  nodeVersions?: INodeVersion[]
 | 
			
		||||
): Promise<INodeVersionInfo | null> {
 | 
			
		||||
  let osPlat: string = os.platform();
 | 
			
		||||
  let osArch: string = translateArchToDistUrl(arch);
 | 
			
		||||
 | 
			
		||||
  let version: string;
 | 
			
		||||
  let version: string = await queryDistForMatch(
 | 
			
		||||
    versionSpec,
 | 
			
		||||
    arch,
 | 
			
		||||
    nodeVersions
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  version = await queryDistForMatch(versionSpec, arch);
 | 
			
		||||
  if (!version) {
 | 
			
		||||
    return null;
 | 
			
		||||
  }
 | 
			
		||||
@@ -349,7 +368,8 @@ function evaluateVersions(versions: string[], versionSpec: string): string {
 | 
			
		||||
 | 
			
		||||
async function queryDistForMatch(
 | 
			
		||||
  versionSpec: string,
 | 
			
		||||
  arch: string = os.arch()
 | 
			
		||||
  arch: string = os.arch(),
 | 
			
		||||
  nodeVersions?: INodeVersion[]
 | 
			
		||||
): Promise<string> {
 | 
			
		||||
  let osPlat: string = os.platform();
 | 
			
		||||
  let osArch: string = translateArchToDistUrl(arch);
 | 
			
		||||
@@ -370,14 +390,14 @@ async function queryDistForMatch(
 | 
			
		||||
      throw new Error(`Unexpected OS '${osPlat}'`);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  let versions: string[] = [];
 | 
			
		||||
  let nodeVersions = await getVersionsFromDist();
 | 
			
		||||
  if (!nodeVersions) {
 | 
			
		||||
    core.debug('No dist manifest cached');
 | 
			
		||||
    nodeVersions = await getVersionsFromDist();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (
 | 
			
		||||
    versionSpec === 'current' ||
 | 
			
		||||
    versionSpec === 'latest' ||
 | 
			
		||||
    versionSpec === 'node'
 | 
			
		||||
  ) {
 | 
			
		||||
  let versions: string[] = [];
 | 
			
		||||
 | 
			
		||||
  if (isLatestSyntax(versionSpec)) {
 | 
			
		||||
    core.info(`getting latest node version...`);
 | 
			
		||||
    return nodeVersions[0].version;
 | 
			
		||||
  }
 | 
			
		||||
@@ -482,3 +502,7 @@ export function parseNodeVersionFile(contents: string): string {
 | 
			
		||||
  }
 | 
			
		||||
  return nodeVersion;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function isLatestSyntax(versionSpec): boolean {
 | 
			
		||||
  return ['current', 'latest', 'node'].includes(versionSpec);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user