Skip to content

Commit de27331

Browse files
resolving comments
1 parent 90501c0 commit de27331

File tree

7 files changed

+33
-61
lines changed

7 files changed

+33
-61
lines changed

action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ runs:
3131
using: 'node12'
3232
main: 'dist/setup/index.js'
3333
post: 'dist/save-cache/index.js'
34-
post-if: success() && inputs.cache != null
34+
post-if: success()

dist/save-cache/index.js renamed to dist/cache-save/index.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39312,14 +39312,6 @@ const getpackageManagerVersion = (packageManager, command) => __awaiter(void 0,
3931239312
}
3931339313
return '2';
3931439314
});
39315-
const getCmdCommand = (packageManager) => __awaiter(void 0, void 0, void 0, function* () {
39316-
let cmdCommand = packageManager;
39317-
if (packageManager === 'yarn') {
39318-
const toolVersion = yield getpackageManagerVersion(packageManager, '--version');
39319-
cmdCommand = `${packageManager}${toolVersion}`;
39320-
}
39321-
return cmdCommand;
39322-
});
3932339315
exports.isPackageManagerCacheSupported = packageManager => {
3932439316
const arr = Array.of(...Object.values(constants_1.LockType));
3932539317
return arr.includes(packageManager);
@@ -39340,9 +39332,9 @@ exports.getCacheDirectoryPath = (packageManager) => __awaiter(void 0, void 0, vo
3934039332
}
3934139333
const stdOut = yield getCommandOutput(packageManagerInfo.getCacheFolderCommand);
3934239334
if (!stdOut) {
39343-
throw new Error(`Could not get version for ${packageManager}`);
39335+
throw new Error(`Could not get cache folder path for ${packageManager}`);
3934439336
}
39345-
return stdOut;
39337+
return { supportedPackageManager: packageManagerInfo, cachePath: stdOut };
3934639338
});
3934739339
// https://github.com/actions/runner/blob/master/src/Misc/expressionFunc/hashFiles/src/hashFiles.ts
3934839340
// replace it, when the issue will be resolved: https://github.com/actions/toolkit/issues/472
@@ -50354,7 +50346,7 @@ function run() {
5035450346
const cachePackages = (packageManager) => __awaiter(void 0, void 0, void 0, function* () {
5035550347
const state = core.getState(constants_1.State.CacheMatchedKey);
5035650348
const primaryKey = core.getState(constants_1.State.CachePrimaryKey);
50357-
const cachePath = yield cache_utils_1.getCacheDirectoryPath(packageManager);
50349+
const { cachePath } = yield cache_utils_1.getCacheDirectoryPath(packageManager);
5035850350
if (primaryKey === state) {
5035950351
core.info(`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`);
5036050352
return;

dist/setup/index.js

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -43406,11 +43406,11 @@ exports.restoreCache = (packageManager) => __awaiter(void 0, void 0, void 0, fun
4340643406
throw new Error(`Caching for '${packageManager}'is not supported`);
4340743407
}
4340843408
const platform = process.env.RUNNER_OS;
43409-
const lockFilePath = findLockFile(packageManager);
43409+
const { cachePath, supportedPackageManager } = yield cache_utils_1.getCacheDirectoryPath(packageManager);
43410+
const lockFilePath = findLockFile(supportedPackageManager);
4341043411
const fileHash = yield cache_utils_1.hashFile(lockFilePath);
4341143412
const primaryKey = `${platform}-${packageManager}-${fileHash}`;
4341243413
core.saveState(constants_1.State.CachePrimaryKey, primaryKey);
43413-
const cachePath = yield cache_utils_1.getCacheDirectoryPath(packageManager);
4341443414
const cacheKey = yield cache.restoreCache([cachePath], primaryKey);
4341543415
if (!cacheKey) {
4341643416
core.info(`${packageManager} cache is not found`);
@@ -43421,19 +43421,13 @@ exports.restoreCache = (packageManager) => __awaiter(void 0, void 0, void 0, fun
4342143421
core.setOutput(constants_1.Outputs.CacheHit, isExactMatch);
4342243422
core.info(`Cache restored from key: ${cacheKey}`);
4342343423
});
43424-
const findLockFile = (packageManager) => {
43425-
let lockFiles;
43426-
if (packageManager === 'npm') {
43427-
lockFiles = cache_utils_1.supportedPackageManagers.npm.lockFilePatterns;
43428-
}
43429-
else {
43430-
lockFiles = cache_utils_1.supportedPackageManagers.yarn1.lockFilePatterns;
43431-
}
43424+
const findLockFile = (supportedPackageManager) => {
43425+
let lockFiles = supportedPackageManager.lockFilePatterns;
4343243426
const workspace = process.env.GITHUB_WORKSPACE;
4343343427
const rootContent = fs_1.default.readdirSync(workspace);
4343443428
const fullLockFile = rootContent.find(item => lockFiles.includes(item));
4343543429
if (!fullLockFile) {
43436-
throw new Error(`No package-lock.json or yarn.lock were found in ${workspace}`);
43430+
throw new Error(`package lock file is not found in ${workspace}. Supported file patterns: ${lockFiles.toString()}`);
4343743431
}
4343843432
return path_1.default.resolve(fullLockFile);
4343943433
};
@@ -44724,14 +44718,6 @@ const getpackageManagerVersion = (packageManager, command) => __awaiter(void 0,
4472444718
}
4472544719
return '2';
4472644720
});
44727-
const getCmdCommand = (packageManager) => __awaiter(void 0, void 0, void 0, function* () {
44728-
let cmdCommand = packageManager;
44729-
if (packageManager === 'yarn') {
44730-
const toolVersion = yield getpackageManagerVersion(packageManager, '--version');
44731-
cmdCommand = `${packageManager}${toolVersion}`;
44732-
}
44733-
return cmdCommand;
44734-
});
4473544721
exports.isPackageManagerCacheSupported = packageManager => {
4473644722
const arr = Array.of(...Object.values(constants_1.LockType));
4473744723
return arr.includes(packageManager);
@@ -44752,9 +44738,9 @@ exports.getCacheDirectoryPath = (packageManager) => __awaiter(void 0, void 0, vo
4475244738
}
4475344739
const stdOut = yield getCommandOutput(packageManagerInfo.getCacheFolderCommand);
4475444740
if (!stdOut) {
44755-
throw new Error(`Could not get version for ${packageManager}`);
44741+
throw new Error(`Could not get cache folder path for ${packageManager}`);
4475644742
}
44757-
return stdOut;
44743+
return { supportedPackageManager: packageManagerInfo, cachePath: stdOut };
4475844744
});
4475944745
// https://github.com/actions/runner/blob/master/src/Misc/expressionFunc/hashFiles/src/hashFiles.ts
4476044746
// replace it, when the issue will be resolved: https://github.com/actions/toolkit/issues/472

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"description": "setup node action",
66
"main": "lib/setup-node.js",
77
"scripts": {
8-
"build": "tsc && ncc build -o dist/setup src/setup-node.ts && ncc build -o dist/save-cache src/cache-save.ts",
8+
"build": "tsc && ncc build -o dist/setup src/setup-node.ts && ncc build -o dist/cache-save src/cache-save.ts",
99
"format": "prettier --write **/*.ts",
1010
"format-check": "prettier --check **/*.ts",
1111
"test": "jest",

src/cache-restore.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
getCacheDirectoryPath,
99
hashFile,
1010
isPackageManagerCacheSupported,
11+
SupportedPackageInfo,
1112
supportedPackageManagers
1213
} from './cache-utils';
1314

@@ -16,13 +17,15 @@ export const restoreCache = async (packageManager: string) => {
1617
throw new Error(`Caching for '${packageManager}'is not supported`);
1718
}
1819
const platform = process.env.RUNNER_OS;
19-
const lockFilePath = findLockFile(packageManager);
20+
const {cachePath, supportedPackageManager} = await getCacheDirectoryPath(
21+
packageManager
22+
);
2023

24+
const lockFilePath = findLockFile(supportedPackageManager);
2125
const fileHash = await hashFile(lockFilePath);
2226
const primaryKey = `${platform}-${packageManager}-${fileHash}`;
2327
core.saveState(State.CachePrimaryKey, primaryKey);
2428

25-
const cachePath = await getCacheDirectoryPath(packageManager);
2629
const cacheKey = await cache.restoreCache([cachePath], primaryKey);
2730

2831
if (!cacheKey) {
@@ -36,20 +39,15 @@ export const restoreCache = async (packageManager: string) => {
3639
core.info(`Cache restored from key: ${cacheKey}`);
3740
};
3841

39-
const findLockFile = (packageManager: string) => {
40-
let lockFiles;
41-
if (packageManager === 'npm') {
42-
lockFiles = supportedPackageManagers.npm.lockFilePatterns;
43-
} else {
44-
lockFiles = supportedPackageManagers.yarn1.lockFilePatterns;
45-
}
42+
const findLockFile = (supportedPackageManager: SupportedPackageInfo) => {
43+
let lockFiles = supportedPackageManager.lockFilePatterns;
4644
const workspace = process.env.GITHUB_WORKSPACE!;
4745
const rootContent = fs.readdirSync(workspace);
4846

4947
const fullLockFile = rootContent.find(item => lockFiles.includes(item));
5048
if (!fullLockFile) {
5149
throw new Error(
52-
`No package-lock.json or yarn.lock were found in ${workspace}`
50+
`package lock file is not found in ${workspace}. Supported file patterns: ${lockFiles.toString()}`
5351
);
5452
}
5553

src/cache-save.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const cachePackages = async (packageManager: string) => {
1616
const state = core.getState(State.CacheMatchedKey);
1717
const primaryKey = core.getState(State.CachePrimaryKey);
1818

19-
const cachePath = await getCacheDirectoryPath(packageManager);
19+
const {cachePath} = await getCacheDirectoryPath(packageManager);
2020
if (primaryKey === state) {
2121
core.info(
2222
`Cache hit occurred on the primary key ${primaryKey}, not saving cache.`

src/cache-utils.ts

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,16 @@ import * as stream from 'stream';
77
import * as util from 'util';
88
import * as path from 'path';
99

10-
export const supportedPackageManagers = {
10+
type SupportedPackageManagers = {
11+
[prop: string]: SupportedPackageInfo;
12+
};
13+
14+
export interface SupportedPackageInfo {
15+
lockFilePatterns: Array<string>;
16+
getCacheFolderCommand: string;
17+
}
18+
19+
export const supportedPackageManagers: SupportedPackageManagers = {
1120
npm: {
1221
lockFilePatterns: ['package-lock.json', 'yarn.lock'],
1322
getCacheFolderCommand: 'npm config get cache'
@@ -57,19 +66,6 @@ const getpackageManagerVersion = async (
5766
return '2';
5867
};
5968

60-
const getCmdCommand = async (packageManager: string) => {
61-
let cmdCommand = packageManager;
62-
if (packageManager === 'yarn') {
63-
const toolVersion = await getpackageManagerVersion(
64-
packageManager,
65-
'--version'
66-
);
67-
cmdCommand = `${packageManager}${toolVersion}`;
68-
}
69-
70-
return cmdCommand;
71-
};
72-
7369
export const isPackageManagerCacheSupported = packageManager => {
7470
const arr = Array.of<string>(...Object.values(LockType));
7571
return arr.includes(packageManager);
@@ -92,10 +88,10 @@ export const getCacheDirectoryPath = async (packageManager: string) => {
9288
);
9389

9490
if (!stdOut) {
95-
throw new Error(`Could not get version for ${packageManager}`);
91+
throw new Error(`Could not get cache folder path for ${packageManager}`);
9692
}
9793

98-
return stdOut;
94+
return {supportedPackageManager: packageManagerInfo, cachePath: stdOut};
9995
};
10096

10197
// https://github.com/actions/runner/blob/master/src/Misc/expressionFunc/hashFiles/src/hashFiles.ts

0 commit comments

Comments
 (0)