From 8d6b39bc6886664d969841dac12cfc59090c0000 Mon Sep 17 00:00:00 2001 From: Lain Date: Mon, 10 Aug 2026 22:06:25 +0200 Subject: [PATCH] ci(release): drop setup-gradle from the publish job It was the last one left in any workflow, and it restored a cache nothing writes: ci.yml removed its own copies, and this one carried cache-read-only: true. The reason ci.yml gave applies here too -- a warm GRADLE_USER_HOME for this project is ~31 GB against a 10 GB per-repository cache ceiling, so the action could never store what it appeared to store. Nothing else is lost: the job runs ./gradlew --no-daemon, which needs no setup from the action, and setup-java still provides the JDK since this job does not run in the CI container. The cost, paid knowingly, is a cold download of the IntelliJ platform artifacts on every release -- a few minutes, a few times a month, against a cache that was not working. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/release.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 757120eb..2cc24ebb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -336,9 +336,19 @@ jobs: distribution: temurin java-version: '21' - - uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6.3.0 - with: - cache-read-only: true + # NB no `setup-gradle`, deliberately, and this was the last one left in any workflow. + # + # It sat here with `cache-read-only: true` — and after `ci.yml` dropped its own copies, NOTHING + # writes that cache any more, so this step restored an entry no job produces. It was paying the + # restore for a cache that does not exist. The reason ci.yml removed it applies here too: a warm + # GRADLE_USER_HOME for this project is ~31 GB against a 10 GB per-repository cache ceiling, so the + # action could never store what it appeared to store. + # + # Nothing else is lost: the build runs `./gradlew --no-daemon`, which needs no setup from the + # action, and the wrapper's own integrity is pinned by `gradle/wrapper/gradle-wrapper.properties` + # plus the checked-in validation. What this job does pay, and pays knowingly, is a cold download of + # the IntelliJ platform artifacts on every release — a handful of minutes, a few times a month, + # against a cache that was not working. # --- build, sign and publish: ONE Gradle invocation -------------------------------------- # The order inside it is not stylistic. Verified against the plugin's own source