diff --git a/ci/images/get-jdk-url.sh b/ci/images/get-jdk-url.sh index d46fbd7e54b..fecbe951ba9 100755 --- a/ci/images/get-jdk-url.sh +++ b/ci/images/get-jdk-url.sh @@ -8,6 +8,9 @@ case "$1" in java11) echo "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.2%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz" ;; + java12) + echo "https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12%2B33/OpenJDK12U-jdk_x64_linux_hotspot_12_33.tar.gz" + ;; *) echo $"Unknown java version" exit 1 diff --git a/ci/images/spring-boot-jdk12-ci-image/Dockerfile b/ci/images/spring-boot-jdk12-ci-image/Dockerfile new file mode 100644 index 00000000000..3d44df75f5f --- /dev/null +++ b/ci/images/spring-boot-jdk12-ci-image/Dockerfile @@ -0,0 +1,11 @@ +FROM ubuntu:bionic-20181018 + +ADD setup.sh /setup.sh +ADD get-jdk-url.sh /get-jdk-url.sh +RUN ./setup.sh java12 + +ENV JAVA_HOME /opt/openjdk +ENV PATH $JAVA_HOME/bin:$PATH +ADD docker-lib.sh /docker-lib.sh + +ENTRYPOINT [ "switch", "shell=/bin/bash", "--", "codep", "/bin/docker daemon" ] diff --git a/ci/pipeline.yml b/ci/pipeline.yml index e8f4689e3b7..1c51f4fde50 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -68,6 +68,13 @@ resources: username: ((docker-hub-username)) password: ((docker-hub-password)) tag: ((branch)) +- name: spring-boot-jdk12-ci-image + type: docker-image + source: + repository: ((docker-hub-organization))/spring-boot-jdk12-ci-image + username: ((docker-hub-username)) + password: ((docker-hub-password)) + tag: ((branch)) - name: artifactory-repo type: artifactory-resource source: @@ -89,6 +96,13 @@ resources: access_token: ((github-access-token)) branch: ((branch)) context: jdk11-build +- name: repo-status-jdk12-build + type: github-status-resource + source: + repository: ((github-repo-name)) + access_token: ((github-access-token)) + branch: ((branch)) + context: jdk12-build - name: slack-alert type: slack-notification source: @@ -112,6 +126,10 @@ jobs: params: build: ci-images-git-repo/ci/images dockerfile: ci-images-git-repo/ci/images/spring-boot-jdk11-ci-image/Dockerfile + - put: spring-boot-jdk12-ci-image + params: + build: ci-images-git-repo/ci/images + dockerfile: ci-images-git-repo/ci/images/spring-boot-jdk12-ci-image/Dockerfile - name: detect-jdk-updates plan: - get: git-repo @@ -137,6 +155,15 @@ jobs: GITHUB_USERNAME: ((github-username)) JDK_VERSION: java11 image: spring-boot-ci-image + - task: detect-jdk12-update + file: git-repo/ci/tasks/detect-jdk-updates.yml + params: + GITHUB_REPO: spring-boot + GITHUB_ORGANIZATION: spring-projects + GITHUB_PASSWORD: ((github-password)) + GITHUB_USERNAME: ((github-username)) + JDK_VERSION: java12 + image: spring-boot-ci-image - name: build serial: true public: true @@ -287,6 +314,52 @@ jobs: silent: true icon_emoji: ":concourse:" username: concourse-ci +- name: jdk12-build + serial: true + public: true + plan: + - get: spring-boot-jdk12-ci-image + - get: git-repo + trigger: true + - put: repo-status-jdk12-build + params: { state: "pending", commit: "git-repo" } + - do: + - task: build-project + privileged: true + timeout: 1h30m + image: spring-boot-jdk12-ci-image + file: git-repo/ci/tasks/build-project.yml + - aggregate: + - task: build-samples + timeout: 1h30m + image: spring-boot-jdk12-ci-image + file: git-repo/ci/tasks/build-samples.yml + - task: build-integration-tests + timeout: 1h30m + image: spring-boot-jdk12-ci-image + file: git-repo/ci/tasks/build-integration-tests.yml + - task: build-deployment-tests + timeout: 1h30m + image: spring-boot-jdk12-ci-image + file: git-repo/ci/tasks/build-deployment-tests.yml + on_failure: + do: + - put: repo-status-jdk12-build + params: { state: "failure", commit: "git-repo" } + - put: slack-alert + params: + text: ":concourse-failed: " + silent: true + icon_emoji: ":concourse:" + username: concourse-ci + - put: repo-status-jdk12-build + params: { state: "success", commit: "git-repo" } + - put: slack-alert + params: + text: ":concourse-succeeded: " + silent: true + icon_emoji: ":concourse:" + username: concourse-ci - name: stage-milestone serial: true plan: @@ -457,7 +530,7 @@ jobs: body: generated-release-notes/release-notes.md groups: - name: "Build" - jobs: ["build", "jdk11-build"] + jobs: ["build", "jdk11-build", "jdk12-build"] - name: "Release" jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "sync-to-maven-central"] - name: "CI Images" diff --git a/ci/scripts/detect-jdk-updates.sh b/ci/scripts/detect-jdk-updates.sh index 476ecb8ed15..8097ffbbba8 100755 --- a/ci/scripts/detect-jdk-updates.sh +++ b/ci/scripts/detect-jdk-updates.sh @@ -10,6 +10,10 @@ case "$JDK_VERSION" in BASE_URL="https://api.adoptopenjdk.net/v2/info/releases/openjdk11" ISSUE_TITLE="Upgrade Java 11 version in CI image" ;; + java12) + BASE_URL="https://api.adoptopenjdk.net/v2/info/releases/openjdk12" + ISSUE_TITLE="Upgrade Java 12 version in CI image" + ;; *) echo $"Unknown java version" exit 1; diff --git a/spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/TestJarCreator.java b/spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/TestJarCreator.java index 42ccec0507a..802a48d5a4d 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/TestJarCreator.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/TestJarCreator.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -95,6 +95,7 @@ public abstract class TestJarCreator { writeEntry(jarOutputStream, "META-INF/versions/9/multi-release.dat", 9); writeEntry(jarOutputStream, "META-INF/versions/10/multi-release.dat", 10); writeEntry(jarOutputStream, "META-INF/versions/11/multi-release.dat", 11); + writeEntry(jarOutputStream, "META-INF/versions/12/multi-release.dat", 12); } else { writeEntry(jarOutputStream, "3.dat", 3);