mirror of
				https://gitea.com/actions/setup-node.git
				synced 2025-10-29 15:52:42 +08:00 
			
		
		
		
	Enhance caching in setup-node with automatic package manager detection (#1348)
* setup node in local * Enhance caching in setup-node with package manager filed detection * updated with array * update the field
This commit is contained in:
		
							
								
								
									
										30
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -99583,9 +99583,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.run = void 0; | ||||
| exports.getNameFromPackageManagerField = exports.run = void 0; | ||||
| const core = __importStar(__nccwpck_require__(37484)); | ||||
| const os_1 = __importDefault(__nccwpck_require__(70857)); | ||||
| const fs_1 = __importDefault(__nccwpck_require__(79896)); | ||||
| const auth = __importStar(__nccwpck_require__(98789)); | ||||
| const path = __importStar(__nccwpck_require__(16928)); | ||||
| const cache_restore_1 = __nccwpck_require__(44326); | ||||
| @@ -99603,6 +99604,8 @@ function run() { | ||||
|             const version = resolveVersionInput(); | ||||
|             let arch = core.getInput('architecture'); | ||||
|             const cache = core.getInput('cache'); | ||||
|             const packagemanagercache = (core.getInput('package-manager-cache') || 'true').toUpperCase() === | ||||
|                 'TRUE'; | ||||
|             // if architecture supplied but node-version is not
 | ||||
|             // if we don't throw a warning, the already installed x64 node will be used which is not probably what user meant.
 | ||||
|             if (arch && !version) { | ||||
| @@ -99636,11 +99639,16 @@ function run() { | ||||
|             if (registryUrl) { | ||||
|                 auth.configAuthentication(registryUrl, alwaysAuth); | ||||
|             } | ||||
|             const resolvedPackageManager = getNameFromPackageManagerField(); | ||||
|             const cacheDependencyPath = core.getInput('cache-dependency-path'); | ||||
|             if (cache && (0, cache_utils_1.isCacheFeatureAvailable)()) { | ||||
|                 core.saveState(constants_1.State.CachePackageManager, cache); | ||||
|                 const cacheDependencyPath = core.getInput('cache-dependency-path'); | ||||
|                 yield (0, cache_restore_1.restoreCache)(cache, cacheDependencyPath); | ||||
|             } | ||||
|             else if (resolvedPackageManager && packagemanagercache) { | ||||
|                 core.saveState(constants_1.State.CachePackageManager, resolvedPackageManager); | ||||
|                 yield (0, cache_restore_1.restoreCache)(resolvedPackageManager, cacheDependencyPath); | ||||
|             } | ||||
|             const matchersPath = path.join(__dirname, '../..', '.github'); | ||||
|             core.info(`##[add-matcher]${path.join(matchersPath, 'tsc.json')}`); | ||||
|             core.info(`##[add-matcher]${path.join(matchersPath, 'eslint-stylish.json')}`); | ||||
| @@ -99674,6 +99682,24 @@ function resolveVersionInput() { | ||||
|     } | ||||
|     return version; | ||||
| } | ||||
| function getNameFromPackageManagerField() { | ||||
|     // Check packageManager field in package.json
 | ||||
|     const SUPPORTED_PACKAGE_MANAGERS = ['npm', 'yarn', 'pnpm']; | ||||
|     try { | ||||
|         const packageJson = JSON.parse(fs_1.default.readFileSync(path.join(process.env.GITHUB_WORKSPACE, 'package.json'), 'utf-8')); | ||||
|         const pm = packageJson.packageManager; | ||||
|         if (typeof pm === 'string') { | ||||
|             const regex = new RegExp(`^(?:\\^)?(${SUPPORTED_PACKAGE_MANAGERS.join('|')})@`); | ||||
|             const match = pm.match(regex); | ||||
|             return match ? match[1] : undefined; | ||||
|         } | ||||
|         return undefined; | ||||
|     } | ||||
|     catch (err) { | ||||
|         return undefined; | ||||
|     } | ||||
| } | ||||
| exports.getNameFromPackageManagerField = getNameFromPackageManagerField; | ||||
| 
 | ||||
| 
 | ||||
| /***/ }), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user