Only perform post-restore and pre-save cache actions when required

This commit is contained in:
Daz DeBoer 2021-09-15 11:20:33 -06:00
parent 9bfa003014
commit dbb485d80d
No known key found for this signature in database
GPG key ID: DD6B9F0B06683D5D
2 changed files with 11 additions and 4 deletions

View file

@ -32,8 +32,7 @@ export class GradleUserHomeCache extends AbstractCache {
super('gradle', 'Gradle User Home')
}
async restore(): Promise<void> {
await super.restore()
async afterRestore(): Promise<void> {
await this.reportCacheEntrySize('as restored from cache')
await this.restoreCommonArtifacts()
await this.reportCacheEntrySize('after restoring common artifacts')
@ -119,9 +118,8 @@ export class GradleUserHomeCache extends AbstractCache {
core.info('-----------------------')
}
async save(): Promise<void> {
async beforeSave(): Promise<void> {
await this.saveCommonArtifacts()
await super.save()
}
private async saveCommonArtifacts(): Promise<void> {

View file

@ -109,6 +109,9 @@ export abstract class AbstractCache {
core.info(
`${this.cacheDescription} restored from cache key: ${cacheResult}`
)
await this.afterRestore()
return
}
@ -134,6 +137,8 @@ export abstract class AbstractCache {
}
}
protected async afterRestore(): Promise<void> {}
async save(): Promise<void> {
if (!this.cacheOutputExists()) {
this.debug(`No ${this.cacheDescription} to cache.`)
@ -157,6 +162,8 @@ export abstract class AbstractCache {
return
}
await this.beforeSave()
core.info(
`Caching ${this.cacheDescription} with cache key: ${cacheKey}`
)
@ -166,6 +173,8 @@ export abstract class AbstractCache {
return
}
protected async beforeSave(): Promise<void> {}
protected async saveCache(
cachePath: string[],
cacheKey: string