Skip to content

Commit 75233e9

Browse files
committed
Set up CI with JDK 21
Closes gh-37359
1 parent 0b3a5f2 commit 75233e9

File tree

3 files changed

+101
-2
lines changed

3 files changed

+101
-2
lines changed

ci/images/ci-image-jdk21/Dockerfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM ubuntu:jammy-20230816
2+
3+
ADD setup.sh /setup.sh
4+
ADD get-jdk-url.sh /get-jdk-url.sh
5+
ADD get-docker-url.sh /get-docker-url.sh
6+
ADD get-docker-compose-url.sh /get-docker-compose-url.sh
7+
RUN ./setup.sh java17 java21
8+
9+
ENV JAVA_HOME /opt/openjdk
10+
ENV PATH $JAVA_HOME/bin:$PATH
11+
ADD docker-lib.sh /docker-lib.sh

ci/images/get-jdk-url.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ case "$1" in
1414
java20)
1515
echo "https://github.com/bell-sw/Liberica/releases/download/20.0.2+10/bellsoft-jdk20.0.2+10-linux-amd64.tar.gz"
1616
;;
17+
java21)
18+
echo "https://download.java.net/java/early_access/jdk21/25/GPL/openjdk-21-ea+25_linux-x64_bin.tar.gz"
19+
;;
1720
*)
1821
echo $"Unknown java version"
1922
exit 1

ci/pipeline.yml

Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,12 @@ resources:
187187
source:
188188
<<: *ci-registry-image-resource-source
189189
repository: ((docker-hub-organization))/spring-boot-ci-jdk20
190+
- name: ci-image-jdk21
191+
type: registry-image
192+
icon: docker
193+
source:
194+
<<: *ci-registry-image-resource-source
195+
repository: ((docker-hub-organization))/spring-boot-ci-jdk21
190196
- name: paketo-builder-base-image
191197
type: registry-image
192198
icon: docker
@@ -235,6 +241,14 @@ resources:
235241
access_token: ((github-ci-status-token))
236242
branch: ((branch))
237243
context: jdk20-build
244+
- name: repo-status-jdk21-build
245+
type: github-status-resource
246+
icon: eye-check-outline
247+
source:
248+
repository: ((github-repo-name))
249+
access_token: ((github-ci-status-token))
250+
branch: ((branch))
251+
context: jdk21-build
238252
- name: slack-alert
239253
type: slack-notification
240254
icon: slack
@@ -291,6 +305,13 @@ jobs:
291305
image: ci-image-jdk20
292306
vars:
293307
ci-image-name: ci-image-jdk20
308+
- task: build-ci-image-jdk21
309+
privileged: true
310+
file: git-repo/ci/tasks/build-ci-image.yml
311+
output_mapping:
312+
image: ci-image-jdk21
313+
vars:
314+
ci-image-name: ci-image-jdk21
294315
- in_parallel:
295316
- put: ci-image
296317
params:
@@ -304,6 +325,9 @@ jobs:
304325
- put: ci-image-jdk20
305326
params:
306327
image: ci-image-jdk20/image.tar
328+
- put: ci-image-jdk21
329+
params:
330+
image: ci-image-jdk21/image.tar
307331
- name: detect-jdk-updates
308332
plan:
309333
- get: git-repo
@@ -483,6 +507,38 @@ jobs:
483507
- put: slack-alert
484508
params:
485509
<<: *slack-success-params
510+
- name: jdk21-build
511+
serial: true
512+
public: true
513+
plan:
514+
- get: ci-image-jdk21
515+
- get: git-repo
516+
trigger: true
517+
- put: repo-status-jdk21-build
518+
params: { state: "pending", commit: "git-repo" }
519+
- do:
520+
- task: build-project
521+
image: ci-image-jdk21
522+
privileged: true
523+
timeout: ((task-timeout))
524+
file: git-repo/ci/tasks/build-project.yml
525+
params:
526+
BRANCH: ((branch))
527+
TOOLCHAIN_JAVA_VERSION: 21
528+
<<: *gradle-enterprise-task-params
529+
<<: *docker-hub-task-params
530+
on_failure:
531+
do:
532+
- put: repo-status-jdk21-build
533+
params: { state: "failure", commit: "git-repo" }
534+
- put: slack-alert
535+
params:
536+
<<: *slack-fail-params
537+
- put: repo-status-jdk21-build
538+
params: { state: "success", commit: "git-repo" }
539+
- put: slack-alert
540+
params:
541+
<<: *slack-success-params
486542
- name: windows-build
487543
serial: true
488544
plan:
@@ -833,13 +889,42 @@ jobs:
833889
- put: slack-alert
834890
params:
835891
<<: *slack-success-params
892+
- name: jdk21-run-system-tests
893+
serial: true
894+
public: true
895+
plan:
896+
- get: ci-image-jdk21
897+
- get: git-repo
898+
- get: paketo-builder-base-image
899+
trigger: true
900+
- get: daily
901+
trigger: true
902+
- do:
903+
- task: run-system-tests
904+
image: ci-image-jdk21
905+
privileged: true
906+
timeout: ((task-timeout))
907+
file: git-repo/ci/tasks/run-system-tests.yml
908+
params:
909+
BRANCH: ((branch))
910+
TOOLCHAIN_JAVA_VERSION: 21
911+
<<: *gradle-enterprise-task-params
912+
<<: *docker-hub-task-params
913+
on_failure:
914+
do:
915+
- put: slack-alert
916+
params:
917+
<<: *slack-fail-params
918+
- put: slack-alert
919+
params:
920+
<<: *slack-success-params
836921
groups:
837922
- name: "builds"
838-
jobs: ["build", "jdk11-build", "jdk17-build", "jdk20-build", "windows-build"]
923+
jobs: ["build", "jdk11-build", "jdk17-build", "jdk20-build", "jdk21-build", "windows-build"]
839924
- name: "releases"
840925
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "create-github-release", "publish-gradle-plugin", "publish-to-sdkman", "update-homebrew-tap"]
841926
- name: "system-tests"
842-
jobs: ["run-system-tests", "jdk11-run-system-tests", "jdk17-run-system-tests", "jdk20-run-system-tests"]
927+
jobs: ["run-system-tests", "jdk11-run-system-tests", "jdk17-run-system-tests", "jdk20-run-system-tests", "jdk21-run-system-tests"]
843928
- name: "ci-images"
844929
jobs: ["build-ci-images", "detect-docker-updates", "detect-jdk-updates", "detect-ubuntu-image-updates"]
845930

0 commit comments

Comments
 (0)