1
0
Fork 0
mirror of https://github.com/actions/cache.git synced 2025-07-12 09:10:44 +00:00

Add support to opt-in enable cross-os caching on windows

This commit is contained in:
Sampark Sharma 2023-01-04 07:54:25 +00:00 committed by GitHub
parent 365406cb70
commit 5e66b6cac9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 951 additions and 449 deletions

View file

@ -2,7 +2,8 @@ export enum Inputs {
Key = "key", // Input for cache, restore, save action
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
UploadChunkSize = "upload-chunk-size", // Input for cache, save action
EnableCrossOsArchive = "enableCrossOsArchive" // Input for cache, restore, save action
}
export enum Outputs {

View file

@ -17,8 +17,7 @@ async function restoreImpl(
// Validate inputs, this can cause task failure
if (!utils.isValidEvent()) {
utils.logWarning(
`Event Validation Error: The event type ${
process.env[Events.Key]
`Event Validation Error: The event type ${process.env[Events.Key]
} is not supported because it's not tied to a branch or tag ref.`
);
return;
@ -31,11 +30,14 @@ async function restoreImpl(
const cachePaths = utils.getInputAsArray(Inputs.Path, {
required: true
});
const enableCrossOsArchive = utils.getInputAsBool(Inputs.EnableCrossOsArchive);
const cacheKey = await cache.restoreCache(
cachePaths,
primaryKey,
restoreKeys
restoreKeys,
{},
enableCrossOsArchive
);
if (!cacheKey) {

View file

@ -19,8 +19,7 @@ async function saveImpl(stateProvider: IStateProvider): Promise<number | void> {
if (!utils.isValidEvent()) {
utils.logWarning(
`Event Validation Error: The event type ${
process.env[Events.Key]
`Event Validation Error: The event type ${process.env[Events.Key]
} is not supported because it's not tied to a branch or tag ref.`
);
return;
@ -52,9 +51,14 @@ async function saveImpl(stateProvider: IStateProvider): Promise<number | void> {
required: true
});
cacheId = await cache.saveCache(cachePaths, primaryKey, {
uploadChunkSize: utils.getInputAsInt(Inputs.UploadChunkSize)
});
const enableCrossOsArchive = utils.getInputAsBool(Inputs.EnableCrossOsArchive);
cacheId = await cache.saveCache(
cachePaths,
primaryKey,
{ uploadChunkSize: utils.getInputAsInt(Inputs.UploadChunkSize) },
enableCrossOsArchive
);
if (cacheId != -1) {
core.info(`Cache saved with key: ${primaryKey}`);

View file

@ -52,6 +52,13 @@ export function getInputAsInt(
return value;
}
export function getInputAsBool(
name: string,
options?: core.InputOptions
): boolean {
return core.getBooleanInput(name, options);
}
export function isCacheFeatureAvailable(): boolean {
if (cache.isFeatureAvailable()) {
return true;