1
0
Fork 0

Address review comments

pull/1249/head
Sampark Sharma 2022-12-07 08:27:08 +00:00 committed by GitHub
parent d1094e1523
commit d79a09bc0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 22 deletions

View File

@ -174,7 +174,7 @@ test('restore with zstd as default but gzip compressed cache found on windows',
const getCacheMock = jest.spyOn(cacheHttpClient, 'getCacheEntry')
getCacheMock
.mockImplementationOnce(async () => {
return Promise.resolve(<ArtifactCacheEntry>{})
throw new Error('Cache not found.')
})
.mockImplementationOnce(async () => {
return Promise.resolve(cacheEntry)

View File

@ -96,30 +96,19 @@ export async function restoreCache(
cacheEntry = await cacheHttpClient.getCacheEntry(keys, paths, {
compressionMethod
})
} catch (error) {
cacheEntry = await cacheHttpClient.getCacheEntryForGzipFallbackOnWindows(
keys,
paths,
compressionMethod,
error
)
}
if (!cacheEntry?.archiveLocation) {
// Cache not found
return undefined
}
} catch (error) {
if (
process.platform === 'win32' &&
compressionMethod !== CompressionMethod.Gzip
) {
// This is to support the old cache entry created
// by the old version of the cache action on windows.
compressionMethod = CompressionMethod.Gzip
cacheEntry = await cacheHttpClient.getCacheEntry(keys, paths, {
compressionMethod
})
if (!cacheEntry?.archiveLocation) {
throw error
}
} else {
throw error
}
}
archivePath = path.join(
await utils.createTempDirectory(),
utils.getCacheFileName(compressionMethod)

View File

@ -122,6 +122,32 @@ export async function getCacheEntry(
return cacheResult
}
// This is to support the old cache entry created
// by the old version of the cache action on windows.
export async function getCacheEntryForGzipFallbackOnWindows(
keys: string[],
paths: string[],
compressionMethod: CompressionMethod,
error: unknown
): Promise<ArtifactCacheEntry> {
let cacheEntry: ArtifactCacheEntry | null
if (
process.platform === 'win32' &&
compressionMethod !== CompressionMethod.Gzip
) {
compressionMethod = CompressionMethod.Gzip
cacheEntry = await getCacheEntry(keys, paths, {
compressionMethod
})
if (!cacheEntry?.archiveLocation) {
throw error
}
} else {
throw error
}
return cacheEntry
}
export async function downloadCache(
archiveLocation: string,
archivePath: string,