Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ private void applyJavaConventions(Project project) {
});
project.getTasks().withType(Test.class, (test) -> {
withOptionalBuildJavaHome(project, (javaHome) -> test.setExecutable(javaHome + "/bin/java"));
withOptionalTestJavaHome(project, (javaHome) -> test.setExecutable(javaHome + "/bin/java"));
test.useJUnitPlatform();
test.setMaxHeapSize("1024M");
});
Expand Down Expand Up @@ -202,7 +203,15 @@ private File createLegalFile(File source, String filename) {
}

private void withOptionalBuildJavaHome(Project project, Consumer<String> consumer) {
String buildJavaHome = (String) project.findProperty("buildJavaHome");
withOptionalJavaHome(project, consumer, "buildJavaHome");
}

private void withOptionalTestJavaHome(Project project, Consumer<String> consumer) {
withOptionalJavaHome(project, consumer, "testJavaHome");
}

private void withOptionalJavaHome(Project project, Consumer<String> consumer, String javaHome) {
String buildJavaHome = (String) project.findProperty(javaHome);
if (buildJavaHome != null && !buildJavaHome.isEmpty()) {
consumer.accept(buildJavaHome);
}
Expand Down
3 changes: 3 additions & 0 deletions ci/images/get-jdk-url.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ case "$1" in
java13)
echo "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_linux_hotspot_13.0.2_8.tar.gz"
;;
java14)
echo "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14%2B36/OpenJDK14U-jdk_x64_linux_hotspot_14_36.tar.gz"
;;
*)
echo $"Unknown java version"
exit 1
Expand Down
10 changes: 10 additions & 0 deletions ci/images/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ curl -L ${JDK_URL} | tar zx --strip-components=1
test -f /opt/openjdk/bin/java
test -f /opt/openjdk/bin/javac

if [[ $1 != $2 ]]; then
SECONDARY_JDK_URL=$( ./get-jdk-url.sh $2 )

mkdir -p /opt/openjdk-secondary
cd /opt/openjdk-secondary
curl -L ${SECONDARY_JDK_URL} | tar zx --strip-components=1
test -f /opt/openjdk-secondary/bin/java
test -f /opt/openjdk-secondary/bin/javac
fi


###########################################################
# DOCKER
Expand Down
2 changes: 1 addition & 1 deletion ci/images/spring-boot-ci-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219

ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java8
RUN ./setup.sh java8 java8

ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH
Expand Down
2 changes: 1 addition & 1 deletion ci/images/spring-boot-jdk11-ci-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219

ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java11
RUN ./setup.sh java11 java11

ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH
Expand Down
2 changes: 1 addition & 1 deletion ci/images/spring-boot-jdk13-ci-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219

ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java13
RUN ./setup.sh java13 java13

ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH
Expand Down
11 changes: 11 additions & 0 deletions ci/images/spring-boot-jdk14-ci-image/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM ubuntu:bionic-20200219

ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java8 java14

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" ]
69 changes: 68 additions & 1 deletion ci/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,14 @@ resources:
username: ((docker-hub-username))
password: ((docker-hub-password))
tag: 2.3.x
- name: spring-boot-jdk14-ci-image
type: docker-image
icon: docker
source:
repository: ((docker-hub-organization))/spring-boot-jdk14-ci-image
username: ((docker-hub-username))
password: ((docker-hub-password))
tag: 2.3.x
- name: artifactory-repo
type: artifactory-resource
icon: package-variant
Expand Down Expand Up @@ -126,6 +134,14 @@ resources:
access_token: ((github-ci-status-token))
branch: ((branch))
context: jdk13-build
- name: repo-status-jdk14-build
type: github-status-resource
icon: eye-check-outline
source:
repository: ((github-repo-name))
access_token: ((github-ci-status-token))
branch: ((branch))
context: jdk14-build
- name: slack-alert
type: slack-notification
icon: slack
Expand Down Expand Up @@ -160,6 +176,10 @@ jobs:
params:
build: ci-images-git-repo/ci/images
dockerfile: ci-images-git-repo/ci/images/spring-boot-jdk13-ci-image/Dockerfile
- put: spring-boot-jdk14-ci-image
params:
build: ci-images-git-repo/ci/images
dockerfile: ci-images-git-repo/ci/images/spring-boot-jdk14-ci-image/Dockerfile
- name: detect-jdk-updates
plan:
- get: git-repo
Expand Down Expand Up @@ -194,6 +214,15 @@ jobs:
GITHUB_USERNAME: ((github-username))
JDK_VERSION: java13
image: spring-boot-ci-image
- task: detect-jdk14-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: java14
image: spring-boot-ci-image
- name: detect-ubuntu-image-updates
plan:
- get: git-repo
Expand Down Expand Up @@ -375,6 +404,44 @@ jobs:
silent: true
icon_emoji: ":concourse:"
username: concourse-ci
- name: jdk14-build
serial: true
public: true
plan:
- get: spring-boot-jdk14-ci-image
- get: git-repo
trigger: false
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be set to true - I was unsure if I should do that from the start. Let me know if I should change it already.

- put: repo-status-jdk14-build
params: { state: "pending", commit: "git-repo" }
- do:
- task: build-project
privileged: true
timeout: ((task-timeout))
image: spring-boot-jdk14-ci-image
file: git-repo/ci/tasks/build-project.yml
params:
BRANCH: ((branch))
GRADLE_ENTERPRISE_ACCESS_KEY: ((gradle_enterprise_secret_access_key))
GRADLE_ENTERPRISE_CACHE_USERNAME: ((gradle_enterprise_cache_user.username))
GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password))
on_failure:
do:
- put: repo-status-jdk14-build
params: { state: "failure", commit: "git-repo" }
- put: slack-alert
params:
text: ":concourse-failed: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} failed!>"
silent: true
icon_emoji: ":concourse:"
username: concourse-ci
- put: repo-status-jdk14-build
params: { state: "success", commit: "git-repo" }
- put: slack-alert
params:
text: ":concourse-succeeded: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} was successful!>"
silent: true
icon_emoji: ":concourse:"
username: concourse-ci
- name: windows-build
serial: true
plan:
Expand Down Expand Up @@ -591,7 +658,7 @@ jobs:
body: generated-release-notes/release-notes.md
groups:
- name: "Build"
jobs: ["build", "jdk11-build", "jdk13-build", "windows-build"]
jobs: ["build", "jdk11-build", "jdk13-build", "jdk14-build", "windows-build"]
- name: "Release"
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "sync-to-maven-central"]
- name: "CI Images"
Expand Down
11 changes: 10 additions & 1 deletion ci/scripts/build-project.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,14 @@ source $(dirname $0)/common.sh
repository=$(pwd)/distribution-repository

pushd git-repo > /dev/null
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 -PdeploymentRepository=${repository} build publishAllPublicationsToDeploymentRepository
if [[ -d /opt/openjdk-secondary ]]; then
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not super happy with this block here, but as said: this can be cleaned up when there is a Gradle version that works with JDK 14

java_version=$( ./$(dirname $0)/get-secondary-java-version.sh )
if [[ ${java_version} = "14" ]]; then
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 -PtestJavaHome=/opt/openjdk-secondary -PdeploymentRepository=${repository} build publishAllPublicationsToDeploymentRepository -x :spring-boot-project:spring-boot-tools:spring-boot-gradle-plugin:test
else
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 -PtestJavaHome=/opt/openjdk-secondary -PdeploymentRepository=${repository} build publishAllPublicationsToDeploymentRepository
fi
else
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 -PdeploymentRepository=${repository} build publishAllPublicationsToDeploymentRepository
fi
popd > /dev/null
12 changes: 8 additions & 4 deletions ci/scripts/detect-jdk-updates.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,27 @@

case "$JDK_VERSION" in
java8)
BASE_URL="https://api.adoptopenjdk.net/v3/assets/feature_releases/8"
BASE_URL="https://api.adoptopenjdk.net/v3/assets/feature_releases/8/ga"
ISSUE_TITLE="Upgrade Java 8 version in CI image"
;;
java11)
BASE_URL="https://api.adoptopenjdk.net/v3/assets/feature_releases/11"
BASE_URL="https://api.adoptopenjdk.net/v3/assets/feature_releases/11/ga"
ISSUE_TITLE="Upgrade Java 11 version in CI image"
;;
java13)
BASE_URL="https://api.adoptopenjdk.net/v3/assets/feature_releases/13"
BASE_URL="https://api.adoptopenjdk.net/v3/assets/feature_releases/13/ga"
ISSUE_TITLE="Upgrade Java 13 version in CI image"
;;
java14)
BASE_URL="https://api.adoptopenjdk.net/v3/assets/feature_releases/14/ga"
ISSUE_TITLE="Upgrade Java 14 version in CI image"
;;
*)
echo $"Unknown java version"
exit 1;
esac

response=$( curl -s ${BASE_URL}\/ga\?architecture\=x64\&heap_size\=normal\&image_type\=jdk\&jvm_impl\=hotspot\&os\=linux\&sort_order\=DESC\&vendor\=adoptopenjdk )
response=$( curl -s ${BASE_URL}\?architecture\=x64\&heap_size\=normal\&image_type\=jdk\&jvm_impl\=hotspot\&os\=linux\&sort_order\=DESC\&vendor\=adoptopenjdk )
latest=$( jq -r '.[0].binaries[0].package.link' <<< "$response" )

current=$( git-repo/ci/images/get-jdk-url.sh ${JDK_VERSION} )
Expand Down
4 changes: 4 additions & 0 deletions ci/scripts/get-secondary-java-version.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
set -e

/opt/openjdk-secondary/bin/java -XshowSettings:properties -version 2>&1 | grep "java.specification.version" | awk '{split($0,parts,"="); print parts[2]}' | awk '{$1=$1;print}'