From dd2a07e44913be13cacb8f52e69590ac84a3109e Mon Sep 17 00:00:00 2001 From: "Greg L. Turnquist" Date: Thu, 17 Jun 2021 17:12:56 -0500 Subject: [PATCH] Use project-specific containers for CI testing. This project shall maintain its own containers for CI testing purposes, instead of depending upon Spring Data MongoDB's containers. See #2027. --- Jenkinsfile | 63 ++++++++++++++++++++++++++--- ci/openjdk11-mongodb-4.4/Dockerfile | 15 +++++++ ci/openjdk16-mongodb-4.4/Dockerfile | 15 +++++++ ci/openjdk8-mongodb-4.4/Dockerfile | 17 ++++++++ 4 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 ci/openjdk11-mongodb-4.4/Dockerfile create mode 100644 ci/openjdk16-mongodb-4.4/Dockerfile create mode 100644 ci/openjdk8-mongodb-4.4/Dockerfile diff --git a/Jenkinsfile b/Jenkinsfile index ac2adcb43..0a7cf61d8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -13,6 +13,59 @@ pipeline { } stages { + stage("Docker images") { + parallel { + stage('Publish JDK 8 + MongoDB 4.4') { + when { + changeset "ci/openjdk8-mongodb-4.4/**" + } + agent { label 'data' } + options { timeout(time: 30, unit: 'MINUTES') } + + steps { + script { + def image = docker.build("springci/spring-data-rest-openjdk8-with-mongodb-4.4", "ci/openjdk8-mongodb-4.4/") + docker.withRegistry('', 'hub.docker.com-springbuildmaster') { + image.push() + } + } + } + } + stage('Publish JDK 11 + MongoDB 4.4') { + when { + changeset "ci/openjdk11-mongodb-4.4/**" + } + agent { label 'data' } + options { timeout(time: 30, unit: 'MINUTES') } + + steps { + script { + def image = docker.build("springci/spring-data-rest-openjdk11-with-mongodb-4.4", "ci/openjdk8-mongodb-4.4/") + docker.withRegistry('', 'hub.docker.com-springbuildmaster') { + image.push() + } + } + } + } + stage('Publish JDK 16 + MongoDB 4.4') { + when { + changeset "ci/openjdk16-mongodb-4.4/**" + } + agent { label 'data' } + options { timeout(time: 30, unit: 'MINUTES') } + + steps { + script { + def image = docker.build("springci/spring-data-rest-openjdk16-with-mongodb-4.4", "ci/openjdk16-mongodb-4.4/") + docker.withRegistry('', 'hub.docker.com-springbuildmaster') { + image.push() + } + } + } + } + } + } + stage("test: baseline (jdk8)") { when { anyOf { @@ -30,7 +83,7 @@ pipeline { steps { script { docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('springci/spring-data-openjdk8-with-mongodb-4.2.0:latest').inside('-v $HOME:/tmp/jenkins-home') { + docker.image('springci/spring-data-rest-openjdk8-with-mongodb-4.4:latest').inside('-v $HOME:/tmp/jenkins-home') { sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' sh 'mongod --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &' sh 'sleep 10' @@ -62,7 +115,7 @@ pipeline { steps { script { docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('springci/spring-data-openjdk11-with-mongodb-4.2.0:latest').inside('-v $HOME:/tmp/jenkins-home') { + docker.image('springci/spring-data-rest-openjdk11-with-mongodb-4.4:latest').inside('-v $HOME:/tmp/jenkins-home') { sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' sh 'mongod --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &' sh 'sleep 10' @@ -85,7 +138,7 @@ pipeline { steps { script { docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('springci/spring-data-openjdk16-with-mongodb-4.2.0:latest').inside('-v $HOME:/tmp/jenkins-home') { + docker.image('springci/spring-data-rest-openjdk16-with-mongodb-4.4:latest').inside('-v $HOME:/tmp/jenkins-home') { sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' sh 'mongod --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &' sh 'sleep 10' @@ -108,7 +161,7 @@ pipeline { steps { script { docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('springci/spring-data-openjdk8-with-mongodb-4.2.0:latest').inside('-v $HOME:/tmp/jenkins-home') { + docker.image('springci/spring-data-rest-openjdk8-with-mongodb-4.4:latest').inside('-v $HOME:/tmp/jenkins-home') { sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' sh 'mongod --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &' sh 'sleep 10' @@ -131,7 +184,7 @@ pipeline { steps { script { docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('springci/spring-data-openjdk16-with-mongodb-4.2.0:latest').inside('-v $HOME:/tmp/jenkins-home') { + docker.image('springci/spring-data-rest-openjdk16-with-mongodb-4.4:latest').inside('-v $HOME:/tmp/jenkins-home') { sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' sh 'mongod --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &' sh 'sleep 10' diff --git a/ci/openjdk11-mongodb-4.4/Dockerfile b/ci/openjdk11-mongodb-4.4/Dockerfile new file mode 100644 index 000000000..6c94ac38f --- /dev/null +++ b/ci/openjdk11-mongodb-4.4/Dockerfile @@ -0,0 +1,15 @@ +FROM adoptopenjdk/openjdk11:latest + +ENV TZ=Etc/UTC +ENV DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + apt-get update && apt-get install -y apt-transport-https apt-utils gnupg2 ; \ + apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv 656408E390CFB1F5 ; \ + echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list; \ + echo ${TZ} > /etc/timezone; + +RUN apt-get update ; \ + apt-get install -y mongodb-org=4.4.4 mongodb-org-server=4.4.4 mongodb-org-shell=4.4.4 mongodb-org-mongos=4.4.4 mongodb-org-tools=4.4.4 ; \ + apt-get clean; \ + rm -rf /var/lib/apt/lists/*; diff --git a/ci/openjdk16-mongodb-4.4/Dockerfile b/ci/openjdk16-mongodb-4.4/Dockerfile new file mode 100644 index 000000000..7a1e47cf0 --- /dev/null +++ b/ci/openjdk16-mongodb-4.4/Dockerfile @@ -0,0 +1,15 @@ +FROM adoptopenjdk/openjdk16:latest + +ENV TZ=Etc/UTC +ENV DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + apt-get update && apt-get install -y apt-transport-https apt-utils gnupg2 ; \ + apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv 656408E390CFB1F5 ; \ + echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list; \ + echo ${TZ} > /etc/timezone; + +RUN apt-get update ; \ + apt-get install -y mongodb-org=4.4.4 mongodb-org-server=4.4.4 mongodb-org-shell=4.4.4 mongodb-org-mongos=4.4.4 mongodb-org-tools=4.4.4 ; \ + apt-get clean; \ + rm -rf /var/lib/apt/lists/*; diff --git a/ci/openjdk8-mongodb-4.4/Dockerfile b/ci/openjdk8-mongodb-4.4/Dockerfile new file mode 100644 index 000000000..79774dd26 --- /dev/null +++ b/ci/openjdk8-mongodb-4.4/Dockerfile @@ -0,0 +1,17 @@ +FROM adoptopenjdk/openjdk8:latest + +ENV TZ=Etc/UTC +ENV DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + apt-get update && apt-get install -y apt-transport-https apt-utils gnupg2 ; \ + apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv 656408E390CFB1F5 ; \ + echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list; \ + echo ${TZ} > /etc/timezone; + +RUN apt-get update ; \ + ln -T /bin/true /usr/bin/systemctl ; \ + apt-get install -y mongodb-org=4.4.4 mongodb-org-server=4.4.4 mongodb-org-shell=4.4.4 mongodb-org-mongos=4.4.4 mongodb-org-tools=4.4.4 ; \ + rm /usr/bin/systemctl ; \ + apt-get clean; \ + rm -rf /var/lib/apt/lists/*;