mirror of
https://github.com/actions/setup-node
synced 2024-12-23 05:34:56 +00:00
add check for packageManager field
This commit is contained in:
parent
9ca6fa06b4
commit
48ed97757d
2 changed files with 22 additions and 9 deletions
|
@ -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');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
23
src/main.ts
23
src/main.ts
|
@ -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');
|
||||
|
|
Loading…
Reference in a new issue