2
0
mirror of https://gitea.com/actions/setup-node.git synced 2025-04-08 00:09:43 +00:00

Merge remote-tracking branch 'upstream/main'

This commit is contained in:
Jef LeCompte
2022-07-27 14:15:58 -07:00
12 changed files with 137 additions and 42 deletions

@ -13,12 +13,12 @@ export interface PackageManagerInfo {
export const supportedPackageManagers: SupportedPackageManagers = {
npm: {
lockFilePatterns: ['package-lock.json', 'yarn.lock'],
lockFilePatterns: ['package-lock.json', 'npm-shrinkwrap.json', 'yarn.lock'],
getCacheFolderCommand: 'npm config get cache'
},
pnpm: {
lockFilePatterns: ['pnpm-lock.yaml'],
getCacheFolderCommand: 'pnpm store path'
getCacheFolderCommand: 'pnpm store path --silent'
},
yarn1: {
lockFilePatterns: ['yarn.lock'],
@ -94,7 +94,7 @@ export const getCacheDirectoryPath = async (
core.debug(`${packageManager} path is ${stdOut}`);
return stdOut;
return stdOut.trim();
};
export function isGhes(): boolean {

@ -495,17 +495,26 @@ function translateArchToDistUrl(arch: string): string {
}
export function parseNodeVersionFile(contents: string): string {
let nodeVersion = contents.trim();
let nodeVersion: string | undefined;
if (contents.includes('volta')) {
nodeVersion = JSON.parse(contents).volta.node;
const found = contents.match(/^(?:nodejs\s+)?v?(?<version>[^\s]+)$/m);
nodeVersion = found?.groups?.version;
if (!nodeVersion) {
try {
// Try parsing the file as an NPM `package.json`
// file.
nodeVersion = JSON.parse(contents).engines?.node;
if (!nodeVersion) throw new Error();
} catch (err) {
// In the case of an unknown format,
// return as is and evaluate the version separately.
nodeVersion = contents.trim();
}
}
if (/^v\d/.test(nodeVersion)) {
nodeVersion = nodeVersion.substring(1);
}
return nodeVersion;
return nodeVersion as string;
}
function isLatestSyntax(versionSpec): boolean {

@ -1,4 +1,5 @@
import * as core from '@actions/core';
import * as exec from '@actions/exec';
import * as installer from './installer';
import fs from 'fs';
import * as auth from './authutil';
@ -39,6 +40,18 @@ export async function run() {
await installer.getNode(version, stable, checkLatest, auth, arch);
}
// Output version of node is being used
try {
const {stdout: installedVersion} = await exec.getExecOutput(
'node',
['--version'],
{ignoreReturnCode: true, silent: true}
);
core.setOutput('node-version', installedVersion.trim());
} catch (err) {
core.setOutput('node-version', '');
}
const registryUrl: string = core.getInput('registry-url');
const alwaysAuth: string = core.getInput('always-auth');
if (registryUrl) {