diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index fe2489abd..694593912 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -42,6 +42,13 @@ jobs: uses: ./ with: node-version: ${{ matrix.node-version }} + - 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 }} diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts index 1424e307f..78ca1052d 100644 --- a/__tests__/installer.test.ts +++ b/__tests__/installer.test.ts @@ -839,9 +839,9 @@ describe('setup-node', () => { ); }); - it('find latest LTS version and resolve it from local cache (lts/-2)', async () => { + it('find latest LTS version and resolve it from local cache (lts/-1)', async () => { // arrange - inputs['node-version'] = 'lts/-2'; + inputs['node-version'] = 'lts/-1'; const toolPath = path.normalize('/cache/node/12.16.2/x64'); findSpy.mockReturnValue(toolPath); @@ -858,10 +858,10 @@ describe('setup-node', () => { ); expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached'); expect(dbgSpy).toHaveBeenCalledWith( - `LTS alias '-2' for Node version 'lts/-2'` + `LTS alias '-1' for Node version 'lts/-1'` ); expect(dbgSpy).toHaveBeenCalledWith( - `Found LTS release '12.16.2' for Node version 'lts/-2'` + `Found LTS release '12.16.2' for Node version 'lts/-1'` ); expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`); expect(cnSpy).toHaveBeenCalledWith( @@ -869,9 +869,9 @@ describe('setup-node', () => { ); }); - it('find latest LTS version and install it from manifest (lts/-2)', async () => { + it('find latest LTS version and install it from manifest (lts/-1)', async () => { // arrange - inputs['node-version'] = 'lts/-2'; + inputs['node-version'] = 'lts/-1'; const toolPath = path.normalize('/cache/node/12.16.2/x64'); findSpy.mockImplementation(() => ''); @@ -893,10 +893,10 @@ describe('setup-node', () => { ); expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached'); expect(dbgSpy).toHaveBeenCalledWith( - `LTS alias '-2' for Node version 'lts/-2'` + `LTS alias '-1' for Node version 'lts/-1'` ); expect(dbgSpy).toHaveBeenCalledWith( - `Found LTS release '12.16.2' for Node version 'lts/-2'` + `Found LTS release '12.16.2' for Node version 'lts/-1'` ); expect(logSpy).toHaveBeenCalledWith('Attempting to download 12...'); expect(logSpy).toHaveBeenCalledWith( diff --git a/dist/setup/index.js b/dist/setup/index.js index 7dbcc1512..a135d3fa2 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -62479,8 +62479,8 @@ function resolveLtsAliasFromManifest(versionSpec, stable, manifest) { // Supported formats are `lts/`, `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.stable === stable) - .map(x => { var _a; return [(_a = x.lts) === null || _a === void 0 ? void 0 : _a.toLowerCase(), x]; })); + .filter(x => x.stable === stable && x.lts) + .map(x => [x.lts.toLowerCase(), x])); const numbered = Object.values(aliases); const release = alias === '*' ? numbered[numbered.length - 1] diff --git a/src/installer.ts b/src/installer.ts index dac533159..46db06b86 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -222,8 +222,8 @@ function resolveLtsAliasFromManifest( const n = Number(alias); const aliases = Object.fromEntries( manifest - .filter(x => x.stable === stable) - .map(x => [x.lts?.toLowerCase(), x]) + .filter(x => x.stable === stable && x.lts) + .map(x => [x.lts!.toLowerCase(), x]) ); const numbered = Object.values(aliases); const release =