add check for packageManager field

pull/482/head
Ethan Arrowood 2022-05-05 11:21:29 -06:00
parent 9ca6fa06b4
commit 48ed97757d
No known key found for this signature in database
GPG Key ID: ED811E6BC98E8742
2 changed files with 22 additions and 9 deletions

View File

@ -89,19 +89,19 @@ describe('setup-node', () => {
warningSpy = jest.spyOn(core, 'warning');
cnSpy.mockImplementation(line => {
// uncomment to debug
process.stderr.write('write:' + line + '\n');
// process.stderr.write('write:' + line + '\n');
});
logSpy.mockImplementation(line => {
// uncomment to debug
process.stderr.write('log:' + line + '\n');
// process.stderr.write('log:' + line + '\n');
});
dbgSpy.mockImplementation(msg => {
// uncomment to see debug output
process.stderr.write(msg + '\n');
// process.stderr.write(msg + '\n');
});
warningSpy.mockImplementation(msg => {
// uncomment to debug
process.stderr.write('log:' + msg + '\n');
// process.stderr.write('log:' + msg + '\n');
});
});

View File

@ -47,11 +47,24 @@ export async function run() {
}
if (cache && isCacheFeatureAvailable()) {
if (semver.gte(version, '14.19.0')) {
try {
core.info(await getCommandOutput('corepack enable'));
} catch (err) {
core.warning(`Failed to enable corepack. Error: ${err.message}`)
const pkgJsonPath = path.join(__dirname, '..', 'package.json');
try {
const stat = await fs.promises.stat(pkgJsonPath);
if (stat.isFile()) {
const packageJson = JSON.parse(await fs.promises.readFile(pkgJsonPath, 'utf8'))
const packageManager = packageJson.packageManager;
if (packageManager !== undefined && semver.gte(version, '14.19.0')) {
try {
core.info(await getCommandOutput('corepack enable'));
} catch (err) {
core.warning(`Failed to enable corepack. Error: ${err.message}`)
}
}
}
} catch (err) {
if (err instanceof Error && (err as NodeJS.ErrnoException).code === 'ENOENT') {
core.warning(`Cannot find package.json at path ${pkgJsonPath}`)
}
}
const cacheDependencyPath = core.getInput('cache-dependency-path');