mirror of
				https://github.com/actions/cache.git
				synced 2025-10-31 18:34:19 +08:00 
			
		
		
		
	Merge pull request #1327 from cdce8p/fix-fail-on-cache-miss
Fix `fail-on-cache-miss` not working
This commit is contained in:
		
						commit
						0c45773b62
					
				| @ -1,5 +1,9 @@ | ||||
| # Releases | ||||
| 
 | ||||
| ### 4.0.2 | ||||
| 
 | ||||
| - Fixed restore `fail-on-cache-miss` not working. | ||||
| 
 | ||||
| ### 4.0.1 | ||||
| 
 | ||||
| - Updated `isGhes` check | ||||
|  | ||||
| @ -449,3 +449,19 @@ test("restore with lookup-only set", async () => { | ||||
|     ); | ||||
|     expect(failedMock).toHaveBeenCalledTimes(0); | ||||
| }); | ||||
| 
 | ||||
| test("restore failure with earlyExit should call process exit", async () => { | ||||
|     testUtils.setInput(Inputs.Path, "node_modules"); | ||||
|     const failedMock = jest.spyOn(core, "setFailed"); | ||||
|     const restoreCacheMock = jest.spyOn(cache, "restoreCache"); | ||||
|     const processExitMock = jest.spyOn(process, "exit").mockImplementation(); | ||||
| 
 | ||||
|     // call restoreImpl with `earlyExit` set to true
 | ||||
|     await restoreImpl(new StateProvider(), true); | ||||
| 
 | ||||
|     expect(restoreCacheMock).toHaveBeenCalledTimes(0); | ||||
|     expect(failedMock).toHaveBeenCalledWith( | ||||
|         "Input required and not supplied: key" | ||||
|     ); | ||||
|     expect(processExitMock).toHaveBeenCalledWith(1); | ||||
| }); | ||||
|  | ||||
							
								
								
									
										15
									
								
								dist/restore-only/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								dist/restore-only/index.js
									
									
									
									
										vendored
									
									
								
							| @ -59392,7 +59392,7 @@ const core = __importStar(__nccwpck_require__(2186)); | ||||
| const constants_1 = __nccwpck_require__(9042); | ||||
| const stateProvider_1 = __nccwpck_require__(1527); | ||||
| const utils = __importStar(__nccwpck_require__(6850)); | ||||
| function restoreImpl(stateProvider) { | ||||
| function restoreImpl(stateProvider, earlyExit) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             if (!utils.isCacheFeatureAvailable()) { | ||||
| @ -59438,21 +59438,16 @@ function restoreImpl(stateProvider) { | ||||
|         } | ||||
|         catch (error) { | ||||
|             core.setFailed(error.message); | ||||
|             if (earlyExit) { | ||||
|                 process.exit(1); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| exports.restoreImpl = restoreImpl; | ||||
| function run(stateProvider, earlyExit) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             yield restoreImpl(stateProvider); | ||||
|         } | ||||
|         catch (err) { | ||||
|             console.error(err); | ||||
|             if (earlyExit) { | ||||
|                 process.exit(1); | ||||
|             } | ||||
|         } | ||||
|         yield restoreImpl(stateProvider, earlyExit); | ||||
|         // node will stay alive if any promises are not resolved,
 | ||||
|         // which is a possibility if HTTP requests are dangling
 | ||||
|         // due to retries or timeouts. We know that if we got here
 | ||||
|  | ||||
							
								
								
									
										15
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							| @ -59392,7 +59392,7 @@ const core = __importStar(__nccwpck_require__(2186)); | ||||
| const constants_1 = __nccwpck_require__(9042); | ||||
| const stateProvider_1 = __nccwpck_require__(1527); | ||||
| const utils = __importStar(__nccwpck_require__(6850)); | ||||
| function restoreImpl(stateProvider) { | ||||
| function restoreImpl(stateProvider, earlyExit) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             if (!utils.isCacheFeatureAvailable()) { | ||||
| @ -59438,21 +59438,16 @@ function restoreImpl(stateProvider) { | ||||
|         } | ||||
|         catch (error) { | ||||
|             core.setFailed(error.message); | ||||
|             if (earlyExit) { | ||||
|                 process.exit(1); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| exports.restoreImpl = restoreImpl; | ||||
| function run(stateProvider, earlyExit) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             yield restoreImpl(stateProvider); | ||||
|         } | ||||
|         catch (err) { | ||||
|             console.error(err); | ||||
|             if (earlyExit) { | ||||
|                 process.exit(1); | ||||
|             } | ||||
|         } | ||||
|         yield restoreImpl(stateProvider, earlyExit); | ||||
|         // node will stay alive if any promises are not resolved,
 | ||||
|         // which is a possibility if HTTP requests are dangling
 | ||||
|         // due to retries or timeouts. We know that if we got here
 | ||||
|  | ||||
							
								
								
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,12 +1,12 @@ | ||||
| { | ||||
|   "name": "cache", | ||||
|   "version": "4.0.1", | ||||
|   "version": "4.0.2", | ||||
|   "lockfileVersion": 2, | ||||
|   "requires": true, | ||||
|   "packages": { | ||||
|     "": { | ||||
|       "name": "cache", | ||||
|       "version": "4.0.1", | ||||
|       "version": "4.0.2", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@actions/cache": "^3.2.3", | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "cache", | ||||
|   "version": "4.0.1", | ||||
|   "version": "4.0.2", | ||||
|   "private": true, | ||||
|   "description": "Cache dependencies and build outputs", | ||||
|   "main": "dist/restore/index.js", | ||||
|  | ||||
| @ -10,7 +10,8 @@ import { | ||||
| import * as utils from "./utils/actionUtils"; | ||||
| 
 | ||||
| export async function restoreImpl( | ||||
|     stateProvider: IStateProvider | ||||
|     stateProvider: IStateProvider, | ||||
|     earlyExit?: boolean | undefined | ||||
| ): Promise<string | undefined> { | ||||
|     try { | ||||
|         if (!utils.isCacheFeatureAvailable()) { | ||||
| @ -83,6 +84,9 @@ export async function restoreImpl( | ||||
|         return cacheKey; | ||||
|     } catch (error: unknown) { | ||||
|         core.setFailed((error as Error).message); | ||||
|         if (earlyExit) { | ||||
|             process.exit(1); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| @ -90,14 +94,7 @@ async function run( | ||||
|     stateProvider: IStateProvider, | ||||
|     earlyExit: boolean | undefined | ||||
| ): Promise<void> { | ||||
|     try { | ||||
|         await restoreImpl(stateProvider); | ||||
|     } catch (err) { | ||||
|         console.error(err); | ||||
|         if (earlyExit) { | ||||
|             process.exit(1); | ||||
|         } | ||||
|     } | ||||
|     await restoreImpl(stateProvider, earlyExit); | ||||
| 
 | ||||
|     // node will stay alive if any promises are not resolved,
 | ||||
|     // which is a possibility if HTTP requests are dangling
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bethany
						Bethany