mirror of
https://github.com/gradle/gradle-build-action.git
synced 2025-10-20 07:08:56 +08:00
Add experimental support for cache-cleanup
- Includes basic implementation as `CacheCleaner` - Integration test that checks unused files are removed: - Downloaded dependencies - Local build cache entries - Wrapper distributions
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import * as core from '@actions/core'
|
||||
import {isCacheDisabled, isCacheReadOnly, isCacheWriteOnly} from './cache-utils'
|
||||
import {isCacheCleanupEnabled, isCacheDisabled, isCacheReadOnly, isCacheWriteOnly} from './cache-utils'
|
||||
import {CacheListener} from './cache-reporting'
|
||||
import {DaemonController} from './daemon-controller'
|
||||
import {GradleStateCache} from './cache-base'
|
||||
import {CacheCleaner} from './cache-cleaner'
|
||||
|
||||
const CACHE_RESTORED_VAR = 'GRADLE_BUILD_ACTION_CACHE_RESTORED'
|
||||
|
||||
@@ -44,6 +45,10 @@ export async function restore(gradleUserHome: string, cacheListener: CacheListen
|
||||
await core.group('Restore Gradle state from cache', async () => {
|
||||
await gradleStateCache.restore(cacheListener)
|
||||
})
|
||||
|
||||
if (isCacheCleanupEnabled() && !isCacheReadOnly()) {
|
||||
new CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']!).prepare()
|
||||
}
|
||||
}
|
||||
|
||||
export async function save(
|
||||
@@ -69,6 +74,10 @@ export async function save(
|
||||
|
||||
await daemonController.stopAllDaemons()
|
||||
|
||||
if (isCacheCleanupEnabled()) {
|
||||
new CacheCleaner(gradleUserHome, process.env['RUNNER_TEMP']!).forceCleanup()
|
||||
}
|
||||
|
||||
await core.group('Caching Gradle state', async () => {
|
||||
return new GradleStateCache(gradleUserHome).save(cacheListener)
|
||||
})
|
||||
|
Reference in New Issue
Block a user