1
0
Fork 0

Delete temporary archive after cache upload (#792)

This is to avoid filling the SSD while saving multiple large caches
pull/858/head
Rob Cowsill 2021-06-28 16:27:09 +01:00 committed by GitHub
parent a31b7eca9e
commit 4564768940
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 16 deletions

View File

@ -166,24 +166,33 @@ export async function saveCache(
core.debug(`Archive Path: ${archivePath}`) core.debug(`Archive Path: ${archivePath}`)
await createTar(archiveFolder, cachePaths, compressionMethod) try {
if (core.isDebug()) { await createTar(archiveFolder, cachePaths, compressionMethod)
await listTar(archivePath, compressionMethod) if (core.isDebug()) {
} await listTar(archivePath, compressionMethod)
}
const fileSizeLimit = 5 * 1024 * 1024 * 1024 // 5GB per repo limit const fileSizeLimit = 5 * 1024 * 1024 * 1024 // 5GB per repo limit
const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath) const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath)
core.debug(`File Size: ${archiveFileSize}`) core.debug(`File Size: ${archiveFileSize}`)
if (archiveFileSize > fileSizeLimit) { if (archiveFileSize > fileSizeLimit) {
throw new Error( throw new Error(
`Cache size of ~${Math.round( `Cache size of ~${Math.round(
archiveFileSize / (1024 * 1024) archiveFileSize / (1024 * 1024)
)} MB (${archiveFileSize} B) is over the 5GB limit, not saving cache.` )} MB (${archiveFileSize} B) is over the 5GB limit, not saving cache.`
) )
} }
core.debug(`Saving Cache (ID: ${cacheId})`) core.debug(`Saving Cache (ID: ${cacheId})`)
await cacheHttpClient.saveCache(cacheId, archivePath, options) await cacheHttpClient.saveCache(cacheId, archivePath, options)
} finally {
// Try to delete the archive to save space
try {
await utils.unlinkFile(archivePath)
} catch (error) {
core.debug(`Failed to delete archive: ${error}`)
}
}
return cacheId return cacheId
} }