Skip to content

Commit 9058820

Browse files
sxhinzvcchristophstrobl
authored andcommitted
Add CI stage for MongoDB 7.0.x
Closes #4501 Original Pull Request: #4496
1 parent 32bd540 commit 9058820

File tree

4 files changed

+131
-1
lines changed

4 files changed

+131
-1
lines changed

Jenkinsfile

+82-1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,44 @@ pipeline {
9696
}
9797
}
9898
}
99+
stage('Publish JDK (Java 17) + MongoDB 7.0') {
100+
when {
101+
anyOf {
102+
changeset "ci/openjdk17-mongodb-7.0/**"
103+
changeset "ci/pipeline.properties"
104+
}
105+
}
106+
agent { label 'data' }
107+
options { timeout(time: 30, unit: 'MINUTES') }
108+
109+
steps {
110+
script {
111+
def image = docker.build("springci/spring-data-with-mongodb-7.0:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg MONGODB=${p['docker.mongodb.7.0.version']} ci/openjdk17-mongodb-7.0/")
112+
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
113+
image.push()
114+
}
115+
}
116+
}
117+
}
118+
stage('Publish JDK (Java 20) + MongoDB 7.0') {
119+
when {
120+
anyOf {
121+
changeset "ci/openjdk20-mongodb-7.0/**"
122+
changeset "ci/pipeline.properties"
123+
}
124+
}
125+
agent { label 'data' }
126+
options { timeout(time: 30, unit: 'MINUTES') }
127+
128+
steps {
129+
script {
130+
def image = docker.build("springci/spring-data-with-mongodb-7.0:${p['java.next.tag']}", "--build-arg BASE=${p['docker.java.next.image']} --build-arg MONGODB=${p['docker.mongodb.7.0.version']} ci/openjdk20-mongodb-7.0/")
131+
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
132+
image.push()
133+
}
134+
}
135+
}
136+
}
99137
}
100138
}
101139

@@ -137,7 +175,6 @@ pipeline {
137175
}
138176
}
139177
parallel {
140-
141178
stage("test: MongoDB 5.0 (main)") {
142179
agent {
143180
label 'data'
@@ -203,6 +240,50 @@ pipeline {
203240
}
204241
}
205242
}
243+
244+
stage("test: MongoDB 7.0 (main)") {
245+
agent {
246+
label 'data'
247+
}
248+
options { timeout(time: 30, unit: 'MINUTES') }
249+
environment {
250+
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
251+
}
252+
steps {
253+
script {
254+
docker.image("harbor-repo.vmware.com/dockerhub-proxy-cache/springci/spring-data-with-mongodb-7.0:${p['java.main.tag']}").inside(p['docker.java.inside.basic']) {
255+
sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
256+
sh 'mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
257+
sh 'sleep 10'
258+
sh 'mongosh --eval "rs.initiate({_id: \'rs0\', members:[{_id: 0, host: \'127.0.0.1:27017\'}]});"'
259+
sh 'sleep 15'
260+
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'
261+
}
262+
}
263+
}
264+
}
265+
266+
stage("test: MongoDB 7.0 (next)") {
267+
agent {
268+
label 'data'
269+
}
270+
options { timeout(time: 30, unit: 'MINUTES') }
271+
environment {
272+
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
273+
}
274+
steps {
275+
script {
276+
docker.image("harbor-repo.vmware.com/dockerhub-proxy-cache/springci/spring-data-with-mongodb-7.0:${p['java.next.tag']}").inside(p['docker.java.inside.basic']) {
277+
sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log'
278+
sh 'mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
279+
sh 'sleep 10'
280+
sh 'mongosh --eval "rs.initiate({_id: \'rs0\', members:[{_id: 0, host: \'127.0.0.1:27017\'}]});"'
281+
sh 'sleep 15'
282+
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'
283+
}
284+
}
285+
}
286+
}
206287
}
207288
}
208289

ci/openjdk17-mongodb-7.0/Dockerfile

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
ARG BASE
2+
FROM ${BASE}
3+
# Any ARG statements before FROM are cleared.
4+
ARG MONGODB
5+
6+
ENV TZ=Etc/UTC
7+
ENV DEBIAN_FRONTEND=noninteractive
8+
9+
RUN set -eux; \
10+
sed -i -e 's/archive.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \
11+
sed -i -e 's/security.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \
12+
sed -i -e 's/ports.ubuntu.com/mirrors.ocf.berkeley.edu/g' /etc/apt/sources.list && \
13+
sed -i -e 's/http/https/g' /etc/apt/sources.list && \
14+
apt-get update && apt-get install -y apt-transport-https apt-utils gnupg2 wget && \
15+
# MongoDB 6.0 release signing key
16+
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | apt-key add - && \
17+
# Needed when MongoDB creates a 7.0 folder.
18+
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list && \
19+
echo ${TZ} > /etc/timezone
20+
21+
RUN apt-get update && \
22+
apt-get install -y mongodb-org=${MONGODB} mongodb-org-server=${MONGODB} mongodb-org-shell=${MONGODB} mongodb-org-mongos=${MONGODB} mongodb-org-tools=${MONGODB} && \
23+
apt-get clean && \
24+
rm -rf /var/lib/apt/lists/*

ci/openjdk20-mongodb-7.0/Dockerfile

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
ARG BASE
2+
FROM ${BASE}
3+
# Any ARG statements before FROM are cleared.
4+
ARG MONGODB
5+
6+
ENV TZ=Etc/UTC
7+
ENV DEBIAN_FRONTEND=noninteractive
8+
9+
RUN set -eux; \
10+
sed -i -e 's/archive.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \
11+
sed -i -e 's/security.ubuntu.com/mirror.one.com/g' /etc/apt/sources.list && \
12+
sed -i -e 's/ports.ubuntu.com/mirrors.ocf.berkeley.edu/g' /etc/apt/sources.list && \
13+
sed -i -e 's/http/https/g' /etc/apt/sources.list && \
14+
apt-get update && apt-get install -y apt-transport-https apt-utils gnupg2 wget && \
15+
# MongoDB 7.0 release signing key
16+
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | apt-key add - && \
17+
# Needed when MongoDB creates a 7.0 folder.
18+
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list && \
19+
echo ${TZ} > /etc/timezone
20+
21+
RUN apt-get update && \
22+
apt-get install -y mongodb-org=${MONGODB} mongodb-org-server=${MONGODB} mongodb-org-shell=${MONGODB} mongodb-org-mongos=${MONGODB} mongodb-org-tools=${MONGODB} && \
23+
apt-get clean && \
24+
rm -rf /var/lib/apt/lists/*

ci/pipeline.properties

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ docker.java.next.image=harbor-repo.vmware.com/dockerhub-proxy-cache/library/ecli
1010
docker.mongodb.4.4.version=4.4.23
1111
docker.mongodb.5.0.version=5.0.19
1212
docker.mongodb.6.0.version=6.0.8
13+
docker.mongodb.7.0.version=7.0.1
1314

1415
# Supported versions of Redis
1516
docker.redis.6.version=6.2.13

0 commit comments

Comments
 (0)