mirror of
				https://github.com/actions/cache.git
				synced 2025-11-04 13:29:10 +08:00 
			
		
		
		
	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