Skip to content

Commit f22ac61

Browse files
committed
Use Gradle 8.11 as the minimum version for cache-cleanup
The cache-cleanup API has changed, so the init-script that worked with Gradle 8.9 no longer works with 8.11. We now provision and use Gradle 8.11 for cache cleanup. This provides a band-aid fix for #417 but that issue will still impact any build configured to run with Gradle > 8.11
1 parent 4ec844e commit f22ac61

File tree

4 files changed

+14
-16
lines changed

4 files changed

+14
-16
lines changed

.github/workflows/ci-check-and-unit-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
env:
2929
ALLOWED_GRADLE_WRAPPER_CHECKSUMS: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 # Invalid wrapper jar used for testing
3030
with:
31-
gradle-version: "8.10.2"
31+
gradle-version: "8.11"
3232

3333
- name: Check formatting and compile
3434
run: |

sources/.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Configuration file for asdf version manager
22
nodejs 20.10.0
3-
gradle 8.10.2
3+
gradle 8.11

sources/src/caching/cache-cleaner.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,20 @@ export class CacheCleaner {
4444
settings.caches {
4545
cleanup = Cleanup.ALWAYS
4646
47-
releasedWrappers.removeUnusedEntriesOlderThan.set(cleanupTime)
48-
snapshotWrappers.removeUnusedEntriesOlderThan.set(cleanupTime)
49-
downloadedResources.removeUnusedEntriesOlderThan.set(cleanupTime)
50-
createdResources.removeUnusedEntriesOlderThan.set(cleanupTime)
51-
buildCache.removeUnusedEntriesOlderThan.set(cleanupTime)
47+
releasedWrappers.setRemoveUnusedEntriesOlderThan(cleanupTime)
48+
snapshotWrappers.setRemoveUnusedEntriesOlderThan(cleanupTime)
49+
downloadedResources.setRemoveUnusedEntriesOlderThan(cleanupTime)
50+
createdResources.setRemoveUnusedEntriesOlderThan(cleanupTime)
51+
buildCache.setRemoveUnusedEntriesOlderThan(cleanupTime)
5252
}
5353
}
5454
`
5555
)
5656
fs.writeFileSync(path.resolve(cleanupProjectDir, 'build.gradle'), 'task("noop") {}')
5757

58-
// Gradle >= 8.9 required for cache cleanup
59-
const executable = await provisioner.provisionGradleAtLeast('8.9')
58+
// Gradle >= 8.11 required for cache cleanup
59+
// TODO: This is ineffective: we should be using the newest version of Gradle that ran a build, or a newer version if it's available on PATH.
60+
const executable = await provisioner.provisionGradleAtLeast('8.11')
6061

6162
await core.group('Executing Gradle to clean up caches', async () => {
6263
core.info(`Cleaning up caches last used before ${cleanTimestamp}`)
@@ -78,11 +79,8 @@ export class CacheCleaner {
7879
'noop'
7980
]
8081

81-
const result = await exec.getExecOutput(executable, args, {
82-
cwd: cleanupProjectDir,
83-
silent: true
82+
await exec.exec(executable, args, {
83+
cwd: cleanupProjectDir
8484
})
85-
86-
core.info(result.stdout)
8785
}
8886
}

sources/test/jest/cache-cleanup.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ test('will cleanup unused gradle versions', async () => {
5353
const transforms3 = path.resolve(gradleUserHome, "caches/transforms-3")
5454
const metadata100 = path.resolve(gradleUserHome, "caches/modules-2/metadata-2.100")
5555
const wrapper802 = path.resolve(gradleUserHome, "wrapper/dists/gradle-8.0.2-bin")
56-
const gradleCurrent = path.resolve(gradleUserHome, "caches/8.10.2")
57-
const metadataCurrent = path.resolve(gradleUserHome, "caches/modules-2/metadata-2.106")
56+
const gradleCurrent = path.resolve(gradleUserHome, "caches/8.11")
57+
const metadataCurrent = path.resolve(gradleUserHome, "caches/modules-2/metadata-2.107")
5858

5959
expect(fs.existsSync(gradle802)).toBe(true)
6060
expect(fs.existsSync(transforms3)).toBe(true)

0 commit comments

Comments
 (0)