Permalink
Cannot retrieve contributors at this time
69 lines (58 sloc)
1.93 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
github-actions-cache/src/utils/actionUtils.ts
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import * as core from "@actions/core"; | |
import { Outputs, RefKey, State } from "../constants"; | |
export function isExactKeyMatch(key: string, cacheKey?: string): boolean { | |
return !!( | |
cacheKey && | |
cacheKey.localeCompare(key, undefined, { | |
sensitivity: "accent" | |
}) === 0 | |
); | |
} | |
export function setCacheState(state: string): void { | |
core.saveState(State.CacheMatchedKey, state); | |
} | |
export function setCacheHitOutput(isCacheHit: boolean): void { | |
core.setOutput(Outputs.CacheHit, isCacheHit.toString()); | |
} | |
export function setOutputAndState(key: string, cacheKey?: string): void { | |
setCacheHitOutput(isExactKeyMatch(key, cacheKey)); | |
// Store the matched cache key if it exists | |
cacheKey && setCacheState(cacheKey); | |
} | |
export function getCacheState(): string | undefined { | |
const cacheKey = core.getState(State.CacheMatchedKey); | |
if (cacheKey) { | |
core.debug(`Cache state/key: ${cacheKey}`); | |
return cacheKey; | |
} | |
return undefined; | |
} | |
export function logWarning(message: string): void { | |
const warningPrefix = "[warning]"; | |
core.info(`${warningPrefix}${message}`); | |
} | |
// Cache token authorized for all events that are tied to a ref | |
// See GitHub Context https://help.github.com/actions/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#github-context | |
export function isValidEvent(): boolean { | |
return RefKey in process.env && Boolean(process.env[RefKey]); | |
} | |
export function getInputAsArray( | |
name: string, | |
options?: core.InputOptions | |
): string[] { | |
return core | |
.getInput(name, options) | |
.split("\n") | |
.map(s => s.trim()) | |
.filter(x => x !== ""); | |
} | |
export function getInputAsInt( | |
name: string, | |
options?: core.InputOptions | |
): number | undefined { | |
const value = parseInt(core.getInput(name, options)); | |
if (isNaN(value) || value < 0) { | |
return undefined; | |
} | |
return value; | |
} |