From 117e7f56a1852a435dca5222730aceca5f2d93c4 Mon Sep 17 00:00:00 2001 From: MOREL Matthieu Date: Thu, 26 Aug 2021 15:04:57 +0200 Subject: [PATCH] feat(cache): change key to match actions/cache documentation Signed-off-by: Matthieu MOREL --- __tests__/cache-restore.test.ts | 6 +++--- dist/setup/index.js | 9 ++++++--- src/cache-restore.ts | 21 +++++++++++---------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/__tests__/cache-restore.test.ts b/__tests__/cache-restore.test.ts index 483f8eb6..aa678bdc 100644 --- a/__tests__/cache-restore.test.ts +++ b/__tests__/cache-restore.test.ts @@ -135,10 +135,10 @@ describe('cache-restore', () => { await restoreCache(packageManager); expect(hashFilesSpy).toHaveBeenCalled(); expect(infoSpy).toHaveBeenCalledWith( - `Cache restored from key: node-cache-${platform}-${packageManager}-${fileHash}` + `Cache restored from key: ${platform}-setup-node-${packageManager}-${fileHash}` ); expect(infoSpy).not.toHaveBeenCalledWith( - `${packageManager} cache is not found` + `Cache not found for input keys: ${platform}-setup-node-${packageManager}-${fileHash}, ${platform}-setup-node-${packageManager}-, ${platform}-setup-node-` ); } ); @@ -165,7 +165,7 @@ describe('cache-restore', () => { await restoreCache(packageManager); expect(hashFilesSpy).toHaveBeenCalled(); expect(infoSpy).toHaveBeenCalledWith( - `${packageManager} cache is not found` + `Cache not found for input keys: ${platform}-setup-node-${packageManager}-${fileHash}, ${platform}-setup-node-${packageManager}-, ${platform}-setup-node-` ); } ); diff --git a/dist/setup/index.js b/dist/setup/index.js index d0f495dd..4e01299f 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -44663,6 +44663,7 @@ exports.restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0 } const platform = process.env.RUNNER_OS; const cachePath = yield cache_utils_1.getCacheDirectoryPath(packageManagerInfo, packageManager); + const paths = [cachePath]; const lockFilePath = cacheDependencyPath ? cacheDependencyPath : findLockFile(packageManagerInfo); @@ -44670,12 +44671,14 @@ exports.restoreCache = (packageManager, cacheDependencyPath) => __awaiter(void 0 if (!fileHash) { throw new Error('Some specified paths were not resolved, unable to cache dependencies.'); } - const primaryKey = `node-cache-${platform}-${packageManager}-${fileHash}`; + const keyPrefix = `${platform}-setup-node-`; + const primaryKey = `${keyPrefix}${packageManager}-${fileHash}`; + const restoreKeys = [`${keyPrefix}${packageManager}-`, keyPrefix]; core.debug(`primary key is ${primaryKey}`); core.saveState(constants_1.State.CachePrimaryKey, primaryKey); - const cacheKey = yield cache.restoreCache([cachePath], primaryKey); + const cacheKey = yield cache.restoreCache(paths, primaryKey, restoreKeys); if (!cacheKey) { - core.info(`${packageManager} cache is not found`); + core.info(`Cache not found for input keys: ${[primaryKey, ...restoreKeys].join(', ')}`); return; } core.saveState(constants_1.State.CacheMatchedKey, cacheKey); diff --git a/src/cache-restore.ts b/src/cache-restore.ts index cd128cb1..ce610737 100644 --- a/src/cache-restore.ts +++ b/src/cache-restore.ts @@ -3,8 +3,7 @@ import * as core from '@actions/core'; import * as glob from '@actions/glob'; import path from 'path'; import fs from 'fs'; - -import {State, Outputs} from './constants'; +import {State} from './constants'; import { getCacheDirectoryPath, getPackageManagerInfo, @@ -25,6 +24,7 @@ export const restoreCache = async ( packageManagerInfo, packageManager ); + const paths = [cachePath]; const lockFilePath = cacheDependencyPath ? cacheDependencyPath : findLockFile(packageManagerInfo); @@ -35,19 +35,20 @@ export const restoreCache = async ( 'Some specified paths were not resolved, unable to cache dependencies.' ); } - - const primaryKey = `node-cache-${platform}-${packageManager}-${fileHash}`; + const keyPrefix = `${platform}-setup-node-`; + const primaryKey = `${keyPrefix}${packageManager}-${fileHash}`; + const restoreKeys = [`${keyPrefix}${packageManager}-`, keyPrefix]; core.debug(`primary key is ${primaryKey}`); - core.saveState(State.CachePrimaryKey, primaryKey); - - const cacheKey = await cache.restoreCache([cachePath], primaryKey); - + const cacheKey = await cache.restoreCache(paths, primaryKey, restoreKeys); if (!cacheKey) { - core.info(`${packageManager} cache is not found`); + core.info( + `Cache not found for input keys: ${[primaryKey, ...restoreKeys].join( + ', ' + )}` + ); return; } - core.saveState(State.CacheMatchedKey, cacheKey); core.info(`Cache restored from key: ${cacheKey}`); };