Add fail-on-cache-miss option (#1036)
				
					
				
			* Add fail-on-cache-miss option * Small improvements * Changes after rebase * Update description * Only fail if no cache entry is found * Code review * Update readme * Add additional test case * Bump version + changelog * Update package-lock.json * Update Readme
This commit is contained in:
		| @ -3,7 +3,8 @@ export enum Inputs { | ||||
|     Path = "path", // Input for cache, restore, save action | ||||
|     RestoreKeys = "restore-keys", // Input for cache, restore action | ||||
|     UploadChunkSize = "upload-chunk-size", // Input for cache, save action | ||||
|     EnableCrossOsArchive = "enableCrossOsArchive" // Input for cache, restore, save action | ||||
|     EnableCrossOsArchive = "enableCrossOsArchive", // Input for cache, restore, save action | ||||
|     FailOnCacheMiss = "fail-on-cache-miss" // Input for cache, restore action | ||||
| } | ||||
|  | ||||
| export enum Outputs { | ||||
|  | ||||
| @ -34,6 +34,7 @@ async function restoreImpl( | ||||
|         const enableCrossOsArchive = utils.getInputAsBool( | ||||
|             Inputs.EnableCrossOsArchive | ||||
|         ); | ||||
|         const failOnCacheMiss = utils.getInputAsBool(Inputs.FailOnCacheMiss); | ||||
|  | ||||
|         const cacheKey = await cache.restoreCache( | ||||
|             cachePaths, | ||||
| @ -44,6 +45,11 @@ async function restoreImpl( | ||||
|         ); | ||||
|  | ||||
|         if (!cacheKey) { | ||||
|             if (failOnCacheMiss) { | ||||
|                 throw new Error( | ||||
|                     `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}` | ||||
|                 ); | ||||
|             } | ||||
|             core.info( | ||||
|                 `Cache not found for input keys: ${[ | ||||
|                     primaryKey, | ||||
|  | ||||
| @ -14,6 +14,7 @@ interface CacheInput { | ||||
|     key: string; | ||||
|     restoreKeys?: string[]; | ||||
|     enableCrossOsArchive?: boolean; | ||||
|     failOnCacheMiss?: boolean; | ||||
| } | ||||
|  | ||||
| export function setInputs(input: CacheInput): void { | ||||
| @ -26,6 +27,8 @@ export function setInputs(input: CacheInput): void { | ||||
|             Inputs.EnableCrossOsArchive, | ||||
|             input.enableCrossOsArchive.toString() | ||||
|         ); | ||||
|     input.failOnCacheMiss !== undefined && | ||||
|         setInput(Inputs.FailOnCacheMiss, input.failOnCacheMiss.toString()); | ||||
| } | ||||
|  | ||||
| export function clearInputs(): void { | ||||
| @ -34,4 +37,5 @@ export function clearInputs(): void { | ||||
|     delete process.env[getInputName(Inputs.RestoreKeys)]; | ||||
|     delete process.env[getInputName(Inputs.UploadChunkSize)]; | ||||
|     delete process.env[getInputName(Inputs.EnableCrossOsArchive)]; | ||||
|     delete process.env[getInputName(Inputs.FailOnCacheMiss)]; | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Marc Mueller
					Marc Mueller