diff --git a/Jenkinsfile b/Jenkinsfile index 781878a16..ebb7c897f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,69 +18,7 @@ pipeline { } stages { - stage("Docker images") { - parallel { - stage('Publish JDK (Java 17) + MongoDB 4.4') { - when { - anyOf { - changeset "ci/openjdk17-mongodb-4.4/**" - changeset "ci/pipeline.properties" - } - } - agent { label 'data' } - options { timeout(time: 30, unit: 'MINUTES') } - - steps { - script { - def image = docker.build("springci/spring-data-with-mongodb-4.4:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg MONGODB=${p['docker.mongodb.4.4.version']} ci/openjdk17-mongodb-4.4/") - docker.withRegistry(p['docker.registry'], p['docker.credentials']) { - image.push() - } - } - } - } - stage('Publish JDK (Java 17) + MongoDB 5.0') { - when { - anyOf { - changeset "ci/openjdk17-mongodb-5.0/**" - changeset "ci/pipeline.properties" - } - } - agent { label 'data' } - options { timeout(time: 30, unit: 'MINUTES') } - - steps { - script { - def image = docker.build("springci/spring-data-with-mongodb-5.0:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg MONGODB=${p['docker.mongodb.5.0.version']} ci/openjdk17-mongodb-5.0/") - docker.withRegistry(p['docker.registry'], p['docker.credentials']) { - image.push() - } - } - } - } - stage('Publish JDK (Java 17) + MongoDB 6.0') { - when { - anyOf { - changeset "ci/openjdk17-mongodb-6.0/**" - changeset "ci/pipeline.properties" - } - } - agent { label 'data' } - options { timeout(time: 30, unit: 'MINUTES') } - - steps { - script { - def image = docker.build("springci/spring-data-with-mongodb-6.0:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg MONGODB=${p['docker.mongodb.6.0.version']} ci/openjdk17-mongodb-6.0/") - docker.withRegistry(p['docker.registry'], p['docker.credentials']) { - image.push() - } - } - } - } - } - } - - stage("test: baseline (Java 17)") { + stage("test: baseline (main)") { when { beforeAgent(true) anyOf { @@ -119,7 +57,7 @@ pipeline { } parallel { - stage("test: MongoDB 5.0 (Java 17)") { + stage("test: MongoDB 5.0 (main)") { agent { label 'data' } @@ -141,7 +79,7 @@ pipeline { } } - stage("test: MongoDB 6.0 (Java 17)") { + stage("test: MongoDB 6.0 (main)") { agent { label 'data' } @@ -162,6 +100,28 @@ pipeline { } } } + + stage("test: MongoDB 6.0 (next)") { + agent { + label 'data' + } + options { timeout(time: 30, unit: 'MINUTES') } + environment { + ARTIFACTORY = credentials("${p['artifactory.credentials']}") + } + steps { + script { + docker.image("harbor-repo.vmware.com/dockerhub-proxy-cache/springci/spring-data-with-mongodb-6.0:${p['java.next.tag']}").inside(p['docker.java.inside.basic']) { + sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' + sh 'mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &' + sh 'sleep 10' + sh 'mongosh --eval "rs.initiate({_id: \'rs0\', members:[{_id: 0, host: \'127.0.0.1:27017\'}]});"' + sh 'sleep 15' + sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml clean dependency:list test -Duser.name=jenkins -Dsort -U -B' + } + } + } + } } } diff --git a/ci/openjdk17-mongodb-4.4/Dockerfile b/ci/openjdk17-mongodb-4.4/Dockerfile deleted file mode 100644 index 9cda8dd33..000000000 --- a/ci/openjdk17-mongodb-4.4/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -ARG BASE -FROM ${BASE} -# Any ARG statements before FROM are cleared. -ARG MONGODB - -ENV TZ=Etc/UTC -ENV DEBIAN_FRONTEND=noninteractive - -RUN set -eux; \ - sed -i -e 's/archive.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \ - sed -i -e 's/security.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \ - sed -i -e 's/ports.ubuntu.com/mirrors.ocf.berkeley.edu/g' /etc/apt/sources.list && \ - sed -i -e 's/http/https/g' /etc/apt/sources.list && \ - 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,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/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=${MONGODB} mongodb-org-server=${MONGODB} mongodb-org-shell=${MONGODB} mongodb-org-mongos=${MONGODB} mongodb-org-tools=${MONGODB} && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* diff --git a/ci/openjdk17-mongodb-5.0/Dockerfile b/ci/openjdk17-mongodb-5.0/Dockerfile deleted file mode 100644 index dc949db94..000000000 --- a/ci/openjdk17-mongodb-5.0/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -ARG BASE -FROM ${BASE} -# Any ARG statements before FROM are cleared. -ARG MONGODB - -ENV TZ=Etc/UTC -ENV DEBIAN_FRONTEND=noninteractive - -RUN set -eux; \ - sed -i -e 's/archive.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \ - sed -i -e 's/security.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \ - sed -i -e 's/ports.ubuntu.com/mirrors.ocf.berkeley.edu/g' /etc/apt/sources.list && \ - sed -i -e 's/http/https/g' /etc/apt/sources.list && \ - apt-get update && apt-get install -y apt-transport-https apt-utils gnupg2 wget && \ - # MongoDB 5.0 release signing key - apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv B00A0BD1E2C63C11 && \ - # Needed when MongoDB creates a 5.0 folder. - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-5.0.list && \ - echo ${TZ} > /etc/timezone - -RUN apt-get update && \ - apt-get install -y mongodb-org=${MONGODB} mongodb-org-server=${MONGODB} mongodb-org-shell=${MONGODB} mongodb-org-mongos=${MONGODB} mongodb-org-tools=${MONGODB} && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* diff --git a/ci/openjdk17-mongodb-6.0/Dockerfile b/ci/openjdk17-mongodb-6.0/Dockerfile deleted file mode 100644 index ca838e4c0..000000000 --- a/ci/openjdk17-mongodb-6.0/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -ARG BASE -FROM ${BASE} -# Any ARG statements before FROM are cleared. -ARG MONGODB - -ENV TZ=Etc/UTC -ENV DEBIAN_FRONTEND=noninteractive - -RUN set -eux; \ - sed -i -e 's/archive.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \ - sed -i -e 's/security.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \ - sed -i -e 's/ports.ubuntu.com/mirrors.ocf.berkeley.edu/g' /etc/apt/sources.list && \ - sed -i -e 's/http/https/g' /etc/apt/sources.list && \ - apt-get update && apt-get install -y apt-transport-https apt-utils gnupg2 wget && \ - # MongoDB 6.0 release signing key - wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add - && \ - # Needed when MongoDB creates a 6.0 folder. - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list && \ - echo ${TZ} > /etc/timezone - -RUN apt-get update && \ - apt-get install -y mongodb-org=${MONGODB} mongodb-org-server=${MONGODB} mongodb-org-shell=${MONGODB} mongodb-org-mongos=${MONGODB} mongodb-org-tools=${MONGODB} && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/*