Skip to content

Commit aacf1b4

Browse files
authored
chore: Improve setup-java actions (#7531)
We are being incorrectly prescriptive in setting up Java in CI; the build currently requires JDK 21 (our default compiler version), 17 (javadocs and a few projects that set compilerVersion, runtimeVersion, or testRuntimeVersion to 17), and 11 (buildSrc explicitly sets to the 11 toolchain); we were currently getting "lucky" that all of these versions can be implicitly sourced from the [hosted toolchain cache](https://github.com/actions/runner-images/blob/releases/ubuntu24/20251215/images/ubuntu/Ubuntu2404-Readme.md#java) when not explicitly installed. We may want to consider locking this down more in the future, and _only_ telling gradle about the JDKs we've explicitly enabled; that is, _not_ implicitly sourcing from the hosted tool cache. Instead of sourcing the JDKs one-by-one, setup-java can source multiple at once: https://github.com/actions/setup-java/tree/v5?tab=readme-ov-file#install-multiple-jdks This also removes the overly-strict requirement of "JDK 11 is currently required for CI builds". I suspect this was originally put in place as a safety measure when the gradle javaToolchain ecosystem was less mature and/or our setup of java requirements in gradle itself was less robust.
1 parent 6be615e commit aacf1b4

File tree

12 files changed

+88
-201
lines changed

12 files changed

+88
-201
lines changed

.github/scripts/gradle-properties.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ PER_WORKER_BYTES=6442450944
2121
MAX_WORKERS="$(( (TOTAL_SYSTEM_BYTES - DAEMON_BYTES - OTHER_BYTES) / PER_WORKER_BYTES ))"
2222
MAX_WORKERS="$(( MAX_WORKERS > 0 ? MAX_WORKERS : 1 ))"
2323

24-
# A bit zealous, but this handles the https://github.com/actions/setup-java output
24+
# A bit zealous, but this handles the https://github.com/actions/setup-java output or implicit hosted tool locations
25+
# https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md#java
2526
JAVA_INSTALL_PATHS=""
2627
JAVA_INSTALL_PATHS="${JAVA_INSTALL_PATHS}${JAVA_HOME_8_X64:+$JAVA_HOME_8_X64,}"
2728
JAVA_INSTALL_PATHS="${JAVA_INSTALL_PATHS}${JAVA_HOME_9_X64:+$JAVA_HOME_9_X64,}"

.github/workflows/build-ci.yml

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,18 @@ jobs:
1515
- name: Checkout
1616
uses: actions/checkout@v5
1717

18-
- name: Setup JDK 11
19-
id: setup-java-11
18+
- name: Setup JDKs
2019
uses: actions/setup-java@v5
2120
with:
2221
distribution: 'temurin'
23-
java-version: '11'
24-
25-
- name: Setup JDK 17
26-
id: setup-java-17
27-
uses: actions/setup-java@v5
28-
with:
29-
distribution: 'temurin'
30-
java-version: '17'
22+
java-version: |
23+
11
24+
17
25+
21
3126
3227
- name: Setup Gradle
3328
uses: gradle/actions/setup-gradle@v5
3429

35-
- name: Set JAVA_HOME
36-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
37-
3830
- name: Setup gradle properties
3931
run: |
4032
.github/scripts/gradle-properties.sh >> gradle.properties
@@ -150,19 +142,18 @@ jobs:
150142
type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.19.') }},value=latest
151143
type=ref,event=branch
152144
153-
- name: Setup JDK 11
154-
id: setup-java-11
145+
- name: Setup JDKs
155146
uses: actions/setup-java@v5
156147
with:
157148
distribution: 'temurin'
158-
java-version: '11'
149+
java-version: |
150+
11
151+
17
152+
21
159153
160154
- name: Setup Gradle
161155
uses: gradle/actions/setup-gradle@v5
162156

163-
- name: Set JAVA_HOME
164-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
165-
166157
- name: Setup gradle properties
167158
run: |
168159
.github/scripts/gradle-properties.sh >> gradle.properties

.github/workflows/check-ci.yml

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,26 +48,18 @@ jobs:
4848
with:
4949
lfs: true
5050

51-
- name: Setup JDK 11
52-
id: setup-java-11
51+
- name: Setup JDKs
5352
uses: actions/setup-java@v5
5453
with:
5554
distribution: 'temurin'
56-
java-version: '11'
57-
58-
- name: Setup JDK 17
59-
id: setup-java-17
60-
uses: actions/setup-java@v5
61-
with:
62-
distribution: 'temurin'
63-
java-version: '17'
55+
java-version: |
56+
11
57+
17
58+
21
6459
6560
- name: Setup Gradle
6661
uses: gradle/actions/setup-gradle@v5
6762

68-
- name: Set JAVA_HOME
69-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
70-
7163
- name: Setup gradle properties
7264
run: |
7365
.github/scripts/gradle-properties.sh >> gradle.properties

.github/workflows/dependency-submission.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,14 @@ jobs:
1414
- name: Checkout
1515
uses: actions/checkout@v5
1616

17-
- name: Setup JDK 11
18-
id: setup-java-11
17+
- name: Setup JDKs
1918
uses: actions/setup-java@v5
2019
with:
2120
distribution: 'temurin'
22-
java-version: '11'
23-
24-
- name: Set JAVA_HOME
25-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
21+
java-version: |
22+
11
23+
17
24+
21
2625
2726
- name: Setup gradle properties
2827
run: |

.github/workflows/docs-ci.yml

Lines changed: 30 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -128,26 +128,18 @@ jobs:
128128
- name: Checkout
129129
uses: actions/checkout@v5
130130

131-
- name: Setup JDK 11
132-
id: setup-java-11
131+
- name: Setup JDKs
133132
uses: actions/setup-java@v5
134133
with:
135134
distribution: 'temurin'
136-
java-version: '11'
137-
138-
- name: Setup JDK 17
139-
id: setup-java-17
140-
uses: actions/setup-java@v5
141-
with:
142-
distribution: 'temurin'
143-
java-version: '17'
135+
java-version: |
136+
11
137+
17
138+
21
144139
145140
- name: Setup Gradle
146141
uses: gradle/actions/setup-gradle@v5
147142

148-
- name: Set JAVA_HOME
149-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
150-
151143
- name: Setup gradle properties
152144
run: |
153145
.github/scripts/gradle-properties.sh >> gradle.properties
@@ -190,26 +182,18 @@ jobs:
190182
- name: Checkout
191183
uses: actions/checkout@v5
192184

193-
- name: Setup JDK 11
194-
id: setup-java-11
195-
uses: actions/setup-java@v5
196-
with:
197-
distribution: 'temurin'
198-
java-version: '11'
199-
200-
- name: Setup JDK 17
201-
id: setup-java-17
185+
- name: Setup JDKs
202186
uses: actions/setup-java@v5
203187
with:
204188
distribution: 'temurin'
205-
java-version: '17'
189+
java-version: |
190+
11
191+
17
192+
21
206193
207194
- name: Setup Gradle
208195
uses: gradle/actions/setup-gradle@v5
209196

210-
- name: Set JAVA_HOME
211-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
212-
213197
- name: Setup gradle properties
214198
run: |
215199
.github/scripts/gradle-properties.sh >> gradle.properties
@@ -252,26 +236,18 @@ jobs:
252236
- name: Checkout
253237
uses: actions/checkout@v5
254238

255-
- name: Setup JDK 11
256-
id: setup-java-11
257-
uses: actions/setup-java@v5
258-
with:
259-
distribution: 'temurin'
260-
java-version: '11'
261-
262-
- name: Setup JDK 17
263-
id: setup-java-17
239+
- name: Setup JDKs
264240
uses: actions/setup-java@v5
265241
with:
266242
distribution: 'temurin'
267-
java-version: '17'
243+
java-version: |
244+
11
245+
17
246+
21
268247
269248
- name: Setup Gradle
270249
uses: gradle/actions/setup-gradle@v5
271250

272-
- name: Set JAVA_HOME
273-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
274-
275251
- name: Setup gradle properties
276252
run: |
277253
.github/scripts/gradle-properties.sh >> gradle.properties
@@ -341,19 +317,18 @@ jobs:
341317
- name: Checkout
342318
uses: actions/checkout@v5
343319

344-
- name: Setup JDK 11
345-
id: setup-java-11
320+
- name: Setup JDKs
346321
uses: actions/setup-java@v5
347322
with:
348323
distribution: 'temurin'
349-
java-version: '11'
324+
java-version: |
325+
11
326+
17
327+
21
350328
351329
- name: Setup Gradle
352330
uses: gradle/actions/setup-gradle@v5
353331

354-
- name: Set JAVA_HOME
355-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
356-
357332
- name: Setup gradle properties
358333
run: |
359334
.github/scripts/gradle-properties.sh >> gradle.properties
@@ -415,19 +390,18 @@ jobs:
415390
- name: Checkout
416391
uses: actions/checkout@v5
417392

418-
- name: Setup JDK 11
419-
id: setup-java-11
393+
- name: Setup JDKs
420394
uses: actions/setup-java@v5
421395
with:
422396
distribution: 'temurin'
423-
java-version: '11'
397+
java-version: |
398+
11
399+
17
400+
21
424401
425402
- name: Setup Gradle
426403
uses: gradle/actions/setup-gradle@v5
427404

428-
- name: Set JAVA_HOME
429-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
430-
431405
- name: Setup gradle properties
432406
run: |
433407
.github/scripts/gradle-properties.sh >> gradle.properties
@@ -473,19 +447,18 @@ jobs:
473447
- name: Checkout
474448
uses: actions/checkout@v5
475449

476-
- name: Setup JDK 11
477-
id: setup-java-11
450+
- name: Setup JDKs
478451
uses: actions/setup-java@v5
479452
with:
480453
distribution: 'temurin'
481-
java-version: '11'
454+
java-version: |
455+
11
456+
17
457+
21
482458
483459
- name: Setup Gradle
484460
uses: gradle/actions/setup-gradle@v5
485461

486-
- name: Set JAVA_HOME
487-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
488-
489462
- name: Setup gradle properties
490463
run: |
491464
.github/scripts/gradle-properties.sh >> gradle.properties

.github/workflows/nightly-check-ci.yml

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -57,40 +57,19 @@ jobs:
5757
with:
5858
lfs: true
5959

60-
- name: Setup JDK 11
61-
id: setup-java-11
60+
- name: Setup JDKs
6261
uses: actions/setup-java@v5
6362
with:
6463
distribution: 'temurin'
65-
java-version: '11'
66-
67-
- name: Setup JDK 17
68-
id: setup-java-17
69-
uses: actions/setup-java@v5
70-
with:
71-
distribution: 'temurin'
72-
java-version: '17'
73-
74-
- name: Setup JDK 21
75-
id: setup-java-21
76-
uses: actions/setup-java@v5
77-
with:
78-
distribution: 'temurin'
79-
java-version: '21'
80-
81-
- name: Setup JDK 24
82-
id: setup-java-24
83-
uses: actions/setup-java@v5
84-
with:
85-
distribution: 'temurin'
86-
java-version: '24'
64+
java-version: |
65+
24
66+
11
67+
17
68+
21
8769
8870
- name: Setup Gradle
8971
uses: gradle/actions/setup-gradle@v5
9072

91-
- name: Set JAVA_HOME
92-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
93-
9473
- name: Setup gradle properties
9574
run: |
9675
.github/scripts/gradle-properties.sh >> gradle.properties
@@ -178,26 +157,18 @@ jobs:
178157
pattern: coverage-*-results
179158
merge-multiple: true
180159

181-
- name: Setup JDK 21
182-
id: setup-java-21
160+
- name: Setup JDKs
183161
uses: actions/setup-java@v5
184162
with:
185163
distribution: 'temurin'
186-
java-version: '21'
187-
188-
- name: Setup JDK 11
189-
id: setup-java-11
190-
uses: actions/setup-java@v5
191-
with:
192-
distribution: 'temurin'
193-
java-version: '11'
164+
java-version: |
165+
11
166+
17
167+
21
194168
195169
- name: Setup Gradle
196170
uses: gradle/actions/setup-gradle@v5
197171

198-
- name: Set JAVA_HOME
199-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
200-
201172
- name: Setup gradle properties
202173
run: |
203174
.github/scripts/gradle-properties.sh >> gradle.properties

.github/workflows/nightly-image-check.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,18 @@ jobs:
1313
- name: Checkout
1414
uses: actions/checkout@v5
1515

16-
- name: Setup JDK 11
17-
id: setup-java-11
16+
- name: Setup JDKs
1817
uses: actions/setup-java@v5
1918
with:
2019
distribution: 'temurin'
21-
java-version: '11'
20+
java-version: |
21+
11
22+
17
23+
21
2224
2325
- name: Setup Gradle
2426
uses: gradle/actions/setup-gradle@v5
2527

26-
- name: Set JAVA_HOME
27-
run: echo "JAVA_HOME=${{ steps.setup-java-11.outputs.path }}" >> $GITHUB_ENV
28-
2928
- name: Setup gradle properties
3029
run: |
3130
.github/scripts/gradle-properties.sh >> gradle.properties

0 commit comments

Comments
 (0)