Add multi-jdks build

This commit is contained in:
Stephane Nicoll
2020-12-17 11:20:23 +01:00
parent 35d40e3619
commit 013253a6ae
8 changed files with 166 additions and 8 deletions

21
ci/images/README.adoc Normal file
View File

@@ -0,0 +1,21 @@
== CI Images
These images are used by CI to run the actual builds.
To build the image locally run the following from this directory:
----
$ docker build --no-cache -f <image-folder>/Dockerfile .
----
For example
----
$ docker build --no-cache -f ci-image/Dockerfile .
----
To test run:
----
$ docker run -it --entrypoint /bin/bash <SHA> ✈
----

View File

@@ -0,0 +1,8 @@
FROM ubuntu:focal-20201106
ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java11
ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH

View File

@@ -0,0 +1,8 @@
FROM ubuntu:focal-20201106
ADD setup.sh /setup.sh
ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java15
ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH

View File

@@ -1,7 +1,8 @@
FROM ubuntu:focal-20201106 FROM ubuntu:focal-20201106
ADD setup.sh /setup.sh ADD setup.sh /setup.sh
RUN ./setup.sh ADD get-jdk-url.sh /get-jdk-url.sh
RUN ./setup.sh java8
ENV JAVA_HOME /opt/openjdk ENV JAVA_HOME /opt/openjdk
ENV PATH $JAVA_HOME/bin:$PATH ENV PATH $JAVA_HOME/bin:$PATH

17
ci/images/get-jdk-url.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
set -e
case "$1" in
java8)
echo "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u275-b01/OpenJDK8U-jdk_x64_linux_hotspot_8u275b01.tar.gz"
;;
java11)
echo "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.9.1%2B1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.9.1_1.tar.gz"
;;
java15)
echo "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.1%2B9/OpenJDK15U-jdk_x64_linux_hotspot_15.0.1_9.tar.gz"
;;
*)
echo $"Unknown java version"
exit 1
esac

View File

@@ -19,7 +19,7 @@ curl --output /opt/concourse-release-scripts.jar https://repo.spring.io/release/
########################################################### ###########################################################
# JAVA # JAVA
########################################################### ###########################################################
JDK_URL=https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u275-b01/OpenJDK8U-jdk_x64_linux_hotspot_8u275b01.tar.gz JDK_URL=$( ./get-jdk-url.sh $1 )
mkdir -p /opt/openjdk mkdir -p /opt/openjdk
cd /opt/openjdk cd /opt/openjdk

View File

@@ -107,6 +107,18 @@ resources:
source: source:
<<: *registry-image-resource-source <<: *registry-image-resource-source
repository: ((docker-hub-organization))/initializr-ci repository: ((docker-hub-organization))/initializr-ci
- name: ci-image-jdk11
type: registry-image
icon: docker
source:
<<: *registry-image-resource-source
repository: ((docker-hub-organization))/initializr-ci-jdk11
- name: ci-image-jdk15
type: registry-image
icon: docker
source:
<<: *registry-image-resource-source
repository: ((docker-hub-organization))/initializr-ci-jdk15
- name: artifactory-repo - name: artifactory-repo
type: artifactory-resource type: artifactory-resource
icon: package-variant icon: package-variant
@@ -123,6 +135,22 @@ resources:
access_token: ((github-ci-status-token)) access_token: ((github-ci-status-token))
branch: ((branch)) branch: ((branch))
context: build context: build
- name: repo-status-jdk11-build
type: github-status-resource
icon: eye-check-outline
source:
repository: ((github-repo-name))
access_token: ((github-ci-status-token))
branch: ((branch))
context: jdk11-build
- name: repo-status-jdk15-build
type: github-status-resource
icon: eye-check-outline
source:
repository: ((github-repo-name))
access_token: ((github-ci-status-token))
branch: ((branch))
context: jdk15-build
- name: slack-alert - name: slack-alert
type: slack-notification type: slack-notification
icon: slack icon: slack
@@ -138,15 +166,38 @@ jobs:
- get: ci-images-git-repo - get: ci-images-git-repo
trigger: true trigger: true
- get: git-repo - get: git-repo
- do: - in_parallel:
- task: build-ci-image - task: build-ci-image
privileged: true privileged: true
file: git-repo/ci/tasks/build-ci-image.yml file: git-repo/ci/tasks/build-ci-image.yml
output_mapping: output_mapping:
image: ci-image image: ci-image
- put: ci-image vars:
params: ci-image-name: ci-image
image: ci-image/image.tar - task: build-ci-image-jdk11
privileged: true
file: git-repo/ci/tasks/build-ci-image.yml
output_mapping:
image: ci-image-jdk11
vars:
ci-image-name: ci-image-jdk11
- task: build-ci-image-jdk15
privileged: true
file: git-repo/ci/tasks/build-ci-image.yml
output_mapping:
image: ci-image-jdk15
vars:
ci-image-name: ci-image-jdk15
- in_parallel:
- put: ci-image
params:
image: ci-image/image.tar
- put: ci-image-jdk11
params:
image: ci-image-jdk11/image.tar
- put: ci-image-jdk15
params:
image: ci-image-jdk15/image.tar
- name: build - name: build
serial: true serial: true
public: true public: true
@@ -180,6 +231,58 @@ jobs:
- put: slack-alert - put: slack-alert
params: params:
<<: *slack-success-params <<: *slack-success-params
- name: jdk11-build
serial: true
public: true
plan:
- get: ci-image-jdk11
- get: git-repo
- get: daily
trigger: true
- put: repo-status-jdk11-build
params: { state: "pending", commit: "git-repo" }
- do:
- task: build-project
image: ci-image-jdk11
<<: *build-project-task-params
on_failure:
do:
- put: repo-status-jdk11-build
params: { state: "failure", commit: "git-repo" }
- put: slack-alert
params:
<<: *slack-fail-params
- put: repo-status-jdk11-build
params: { state: "success", commit: "git-repo" }
- put: slack-alert
params:
<<: *slack-success-params
- name: jdk15-build
serial: true
public: true
plan:
- get: ci-image-jdk15
- get: git-repo
- get: daily
trigger: true
- put: repo-status-jdk15-build
params: { state: "pending", commit: "git-repo" }
- do:
- task: build-project
image: ci-image-jdk15
<<: *build-project-task-params
on_failure:
do:
- put: repo-status-jdk15-build
params: { state: "failure", commit: "git-repo" }
- put: slack-alert
params:
<<: *slack-fail-params
- put: repo-status-jdk15-build
params: { state: "success", commit: "git-repo" }
- put: slack-alert
params:
<<: *slack-success-params
- name: build-pull-requests - name: build-pull-requests
serial: true serial: true
public: true public: true
@@ -298,7 +401,7 @@ jobs:
body: generated-changelog/changelog.md body: generated-changelog/changelog.md
groups: groups:
- name: "build" - name: "build"
jobs: ["build", "windows-build"] jobs: ["build", "jdk11-build", "jdk15-build", "windows-build"]
- name: "releases" - name: "releases"
jobs: ["stage-release", "promote-release", "sync-to-maven-central"] jobs: ["stage-release", "promote-release", "sync-to-maven-central"]
- name: "ci-images" - name: "ci-images"

View File

@@ -12,7 +12,7 @@ caches:
- path: ci-image-cache - path: ci-image-cache
params: params:
CONTEXT: ci-images-git-repo/ci/images CONTEXT: ci-images-git-repo/ci/images
DOCKERFILE: ci-images-git-repo/ci/images/ci-image/Dockerfile DOCKERFILE: ci-images-git-repo/ci/images/((ci-image-name))/Dockerfile
REGISTRY_MIRRORS: ((docker-hub-mirror)) REGISTRY_MIRRORS: ((docker-hub-mirror))
DOCKER_HUB_AUTH: ((docker-hub-auth)) DOCKER_HUB_AUTH: ((docker-hub-auth))
run: run: