mirror of
				https://github.com/actions/cache.git
				synced 2025-11-04 08:20:56 +00:00 
			
		
		
		
	Add check-only mode
This commit is contained in:
		
					parent
					
						
							
								d33b5077b5
							
						
					
				
			
			
				commit
				
					
						4f2da0b64b
					
				
			
		
					 5 changed files with 26963 additions and 13237 deletions
				
			
		
							
								
								
									
										20086
									
								
								dist/restore/index.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										20086
									
								
								dist/restore/index.js
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										20044
									
								
								dist/save/index.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										20044
									
								
								dist/save/index.js
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
					@ -1,7 +1,8 @@
 | 
				
			||||||
export enum Inputs {
 | 
					export enum Inputs {
 | 
				
			||||||
    Key = "key",
 | 
					    Key = "key",
 | 
				
			||||||
    Path = "path",
 | 
					    Path = "path",
 | 
				
			||||||
    RestoreKeys = "restore-keys"
 | 
					    RestoreKeys = "restore-keys",
 | 
				
			||||||
 | 
					    OnlyCheckKey = "only-check-key"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum Outputs {
 | 
					export enum Outputs {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,6 @@
 | 
				
			||||||
import * as cache from "@actions/cache";
 | 
					import * as cache from "@actions/cache";
 | 
				
			||||||
 | 
					import { getCacheEntry } from "@actions/cache/lib/internal/cacheHttpClient";
 | 
				
			||||||
 | 
					import { getCompressionMethod } from "@actions/cache/lib/internal/cacheUtils";
 | 
				
			||||||
import * as core from "@actions/core";
 | 
					import * as core from "@actions/core";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Events, Inputs, State } from "./constants";
 | 
					import { Events, Inputs, State } from "./constants";
 | 
				
			||||||
| 
						 | 
					@ -23,30 +25,48 @@ async function run(): Promise<void> {
 | 
				
			||||||
        const cachePaths = utils.getInputAsArray(Inputs.Path, {
 | 
					        const cachePaths = utils.getInputAsArray(Inputs.Path, {
 | 
				
			||||||
            required: true
 | 
					            required: true
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					        const onlyCheck = utils.getInputAsBool(Inputs.OnlyCheckKey);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            const cacheKey = await cache.restoreCache(
 | 
					            if (onlyCheck) {
 | 
				
			||||||
                cachePaths,
 | 
					                const entry = await getCacheEntry([primaryKey], cachePaths, {
 | 
				
			||||||
                primaryKey,
 | 
					                    compressionMethod: await getCompressionMethod()
 | 
				
			||||||
                restoreKeys
 | 
					                });
 | 
				
			||||||
            );
 | 
					
 | 
				
			||||||
            if (!cacheKey) {
 | 
					                if (entry && entry.archiveLocation) {
 | 
				
			||||||
                core.info(
 | 
					                    core.info(`Cache found for key: ${primaryKey}`);
 | 
				
			||||||
                    `Cache not found for input keys: ${[
 | 
					                    utils.setCacheHitOutput(true);
 | 
				
			||||||
                        primaryKey,
 | 
					                } else {
 | 
				
			||||||
                        ...restoreKeys
 | 
					                    core.info(`Cache not found for key: ${primaryKey}`);
 | 
				
			||||||
                    ].join(", ")}`
 | 
					                    utils.setCacheHitOutput(false);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                const cacheKey = await cache.restoreCache(
 | 
				
			||||||
 | 
					                    cachePaths,
 | 
				
			||||||
 | 
					                    primaryKey,
 | 
				
			||||||
 | 
					                    restoreKeys
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                return;
 | 
					                if (!cacheKey) {
 | 
				
			||||||
 | 
					                    core.info(
 | 
				
			||||||
 | 
					                        `Cache not found for input keys: ${[
 | 
				
			||||||
 | 
					                            primaryKey,
 | 
				
			||||||
 | 
					                            ...restoreKeys
 | 
				
			||||||
 | 
					                        ].join(", ")}`
 | 
				
			||||||
 | 
					                    );
 | 
				
			||||||
 | 
					                    return;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // Store the matched cache key
 | 
				
			||||||
 | 
					                utils.setCacheState(cacheKey);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                const isExactKeyMatch = utils.isExactKeyMatch(
 | 
				
			||||||
 | 
					                    primaryKey,
 | 
				
			||||||
 | 
					                    cacheKey
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					                utils.setCacheHitOutput(isExactKeyMatch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                core.info(`Cache restored from key: ${cacheKey}`);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Store the matched cache key
 | 
					 | 
				
			||||||
            utils.setCacheState(cacheKey);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            const isExactKeyMatch = utils.isExactKeyMatch(primaryKey, cacheKey);
 | 
					 | 
				
			||||||
            utils.setCacheHitOutput(isExactKeyMatch);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            core.info(`Cache restored from key: ${cacheKey}`);
 | 
					 | 
				
			||||||
        } catch (error) {
 | 
					        } catch (error) {
 | 
				
			||||||
            if (error.name === cache.ValidationError.name) {
 | 
					            if (error.name === cache.ValidationError.name) {
 | 
				
			||||||
                throw error;
 | 
					                throw error;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,3 +56,10 @@ export function getInputAsArray(
 | 
				
			||||||
        .map(s => s.trim())
 | 
					        .map(s => s.trim())
 | 
				
			||||||
        .filter(x => x !== "");
 | 
					        .filter(x => x !== "");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function getInputAsBool(
 | 
				
			||||||
 | 
					    name: string,
 | 
				
			||||||
 | 
					    options?: core.InputOptions
 | 
				
			||||||
 | 
					): boolean {
 | 
				
			||||||
 | 
					    return core.getInput(name, options) === "true";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue