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 | # Releases | ||||||
| 
 | 
 | ||||||
|  | ### 4.0.2 | ||||||
|  | 
 | ||||||
|  | - Fixed restore `fail-on-cache-miss` not working. | ||||||
|  | 
 | ||||||
| ### 4.0.1 | ### 4.0.1 | ||||||
| 
 | 
 | ||||||
| - Updated `isGhes` check | - Updated `isGhes` check | ||||||
|  | |||||||
| @ -449,3 +449,19 @@ test("restore with lookup-only set", async () => { | |||||||
|     ); |     ); | ||||||
|     expect(failedMock).toHaveBeenCalledTimes(0); |     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 constants_1 = __nccwpck_require__(9042); | ||||||
| const stateProvider_1 = __nccwpck_require__(1527); | const stateProvider_1 = __nccwpck_require__(1527); | ||||||
| const utils = __importStar(__nccwpck_require__(6850)); | const utils = __importStar(__nccwpck_require__(6850)); | ||||||
| function restoreImpl(stateProvider) { | function restoreImpl(stateProvider, earlyExit) { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         try { |         try { | ||||||
|             if (!utils.isCacheFeatureAvailable()) { |             if (!utils.isCacheFeatureAvailable()) { | ||||||
| @ -59438,21 +59438,16 @@ function restoreImpl(stateProvider) { | |||||||
|         } |         } | ||||||
|         catch (error) { |         catch (error) { | ||||||
|             core.setFailed(error.message); |             core.setFailed(error.message); | ||||||
|  |             if (earlyExit) { | ||||||
|  |                 process.exit(1); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.restoreImpl = restoreImpl; | exports.restoreImpl = restoreImpl; | ||||||
| function run(stateProvider, earlyExit) { | function run(stateProvider, earlyExit) { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         try { |         yield restoreImpl(stateProvider, earlyExit); | ||||||
|             yield restoreImpl(stateProvider); |  | ||||||
|         } |  | ||||||
|         catch (err) { |  | ||||||
|             console.error(err); |  | ||||||
|             if (earlyExit) { |  | ||||||
|                 process.exit(1); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         // node will stay alive if any promises are not resolved,
 |         // node will stay alive if any promises are not resolved,
 | ||||||
|         // which is a possibility if HTTP requests are dangling
 |         // which is a possibility if HTTP requests are dangling
 | ||||||
|         // due to retries or timeouts. We know that if we got here
 |         // 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 constants_1 = __nccwpck_require__(9042); | ||||||
| const stateProvider_1 = __nccwpck_require__(1527); | const stateProvider_1 = __nccwpck_require__(1527); | ||||||
| const utils = __importStar(__nccwpck_require__(6850)); | const utils = __importStar(__nccwpck_require__(6850)); | ||||||
| function restoreImpl(stateProvider) { | function restoreImpl(stateProvider, earlyExit) { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         try { |         try { | ||||||
|             if (!utils.isCacheFeatureAvailable()) { |             if (!utils.isCacheFeatureAvailable()) { | ||||||
| @ -59438,21 +59438,16 @@ function restoreImpl(stateProvider) { | |||||||
|         } |         } | ||||||
|         catch (error) { |         catch (error) { | ||||||
|             core.setFailed(error.message); |             core.setFailed(error.message); | ||||||
|  |             if (earlyExit) { | ||||||
|  |                 process.exit(1); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.restoreImpl = restoreImpl; | exports.restoreImpl = restoreImpl; | ||||||
| function run(stateProvider, earlyExit) { | function run(stateProvider, earlyExit) { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         try { |         yield restoreImpl(stateProvider, earlyExit); | ||||||
|             yield restoreImpl(stateProvider); |  | ||||||
|         } |  | ||||||
|         catch (err) { |  | ||||||
|             console.error(err); |  | ||||||
|             if (earlyExit) { |  | ||||||
|                 process.exit(1); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|         // node will stay alive if any promises are not resolved,
 |         // node will stay alive if any promises are not resolved,
 | ||||||
|         // which is a possibility if HTTP requests are dangling
 |         // which is a possibility if HTTP requests are dangling
 | ||||||
|         // due to retries or timeouts. We know that if we got here
 |         // 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", |   "name": "cache", | ||||||
|   "version": "4.0.1", |   "version": "4.0.2", | ||||||
|   "lockfileVersion": 2, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "cache", |       "name": "cache", | ||||||
|       "version": "4.0.1", |       "version": "4.0.2", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/cache": "^3.2.3", |         "@actions/cache": "^3.2.3", | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "cache", |   "name": "cache", | ||||||
|   "version": "4.0.1", |   "version": "4.0.2", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "description": "Cache dependencies and build outputs", |   "description": "Cache dependencies and build outputs", | ||||||
|   "main": "dist/restore/index.js", |   "main": "dist/restore/index.js", | ||||||
|  | |||||||
| @ -10,7 +10,8 @@ import { | |||||||
| import * as utils from "./utils/actionUtils"; | import * as utils from "./utils/actionUtils"; | ||||||
| 
 | 
 | ||||||
| export async function restoreImpl( | export async function restoreImpl( | ||||||
|     stateProvider: IStateProvider |     stateProvider: IStateProvider, | ||||||
|  |     earlyExit?: boolean | undefined | ||||||
| ): Promise<string | undefined> { | ): Promise<string | undefined> { | ||||||
|     try { |     try { | ||||||
|         if (!utils.isCacheFeatureAvailable()) { |         if (!utils.isCacheFeatureAvailable()) { | ||||||
| @ -83,6 +84,9 @@ export async function restoreImpl( | |||||||
|         return cacheKey; |         return cacheKey; | ||||||
|     } catch (error: unknown) { |     } catch (error: unknown) { | ||||||
|         core.setFailed((error as Error).message); |         core.setFailed((error as Error).message); | ||||||
|  |         if (earlyExit) { | ||||||
|  |             process.exit(1); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -90,14 +94,7 @@ async function run( | |||||||
|     stateProvider: IStateProvider, |     stateProvider: IStateProvider, | ||||||
|     earlyExit: boolean | undefined |     earlyExit: boolean | undefined | ||||||
| ): Promise<void> { | ): Promise<void> { | ||||||
|     try { |     await restoreImpl(stateProvider, earlyExit); | ||||||
|         await restoreImpl(stateProvider); |  | ||||||
|     } catch (err) { |  | ||||||
|         console.error(err); |  | ||||||
|         if (earlyExit) { |  | ||||||
|             process.exit(1); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     // node will stay alive if any promises are not resolved,
 |     // node will stay alive if any promises are not resolved,
 | ||||||
|     // which is a possibility if HTTP requests are dangling
 |     // which is a possibility if HTTP requests are dangling
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bethany
						Bethany