Browse Source

Polishing.

Extract docker credentials into properties file.
Use tabs for indentation instead of spaces.

See #3949
pull/3959/head
Mark Paluch 4 years ago
parent
commit
e6c8ee037a
No known key found for this signature in database
GPG Key ID: 4406B84C1661DCD1
  1. 93
      Jenkinsfile
  2. 11
      ci/pipeline.properties

93
Jenkinsfile vendored

@ -1,7 +1,7 @@
def p = [:] def p = [:]
node { node {
checkout scm checkout scm
p = readProperties interpolate: true, file: 'ci/pipeline.properties' p = readProperties interpolate: true, file: 'ci/pipeline.properties'
} }
pipeline { pipeline {
@ -20,39 +20,39 @@ pipeline {
stages { stages {
stage("Docker images") { stage("Docker images") {
parallel { parallel {
stage('Publish JDK (main) + MongoDB 5.0') { stage('Publish JDK (main) + MongoDB 5.0') {
when { when {
anyOf { anyOf {
changeset "ci/openjdk17-mongodb-5.0/**" changeset "ci/openjdk17-mongodb-5.0/**"
changeset "ci/pipeline.properties" changeset "ci/pipeline.properties"
} }
} }
agent { label 'data' } agent { label 'data' }
options { timeout(time: 30, unit: 'MINUTES') } options { timeout(time: 30, unit: 'MINUTES') }
steps { steps {
script { 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/openjdk8-mongodb-5.0/") 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('', 'hub.docker.com-springbuildmaster') { docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
image.push() image.push()
} }
} }
} }
} }
stage('Publish JDK (main) + MongoDB 4.4') { stage('Publish JDK (main) + MongoDB 4.4') {
when { when {
anyOf { anyOf {
changeset "ci/openjdk17-mongodb-4.4/**" changeset "ci/openjdk17-mongodb-4.4/**"
changeset "ci/pipeline.properties" changeset "ci/pipeline.properties"
} }
} }
agent { label 'data' } agent { label 'data' }
options { timeout(time: 30, unit: 'MINUTES') } options { timeout(time: 30, unit: 'MINUTES') }
steps { steps {
script { script {
def image = docker.build("springci/spring-data-with-mongodb-4.4:${p['java.lts.tag']}", "--build-arg BASE=${p['docker.java.lts.image']} --build-arg MONGODB=${p['docker.mongodb.4.4.version']} ci/openjdk16-mongodb-4.4/") 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('', 'hub.docker.com-springbuildmaster') { docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
image.push() image.push()
} }
} }
@ -78,7 +78,7 @@ pipeline {
} }
steps { steps {
script { script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') { docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
docker.image("springci/spring-data-with-mongodb-4.0:${p['java.main.tag']}").inside(p['docker.java.inside.basic']) { docker.image("springci/spring-data-with-mongodb-4.0:${p['java.main.tag']}").inside(p['docker.java.inside.basic']) {
sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' 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 'mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
@ -111,7 +111,7 @@ pipeline {
} }
steps { steps {
script { script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') { docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
docker.image("springci/spring-data-with-mongodb-4.4:${p['java.main.tag']}").inside(p['docker.java.inside.basic']) { docker.image("springci/spring-data-with-mongodb-4.4:${p['java.main.tag']}").inside(p['docker.java.inside.basic']) {
sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' 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 'mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
@ -126,28 +126,28 @@ pipeline {
} }
stage("test: mongodb 5.0 (main)") { stage("test: mongodb 5.0 (main)") {
agent { agent {
label 'data' label 'data'
} }
options { timeout(time: 30, unit: 'MINUTES') } options { timeout(time: 30, unit: 'MINUTES') }
environment { environment {
ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c') ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c')
} }
steps { steps {
script { script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') { docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
docker.image("springci/spring-data-with-mongodb-5.0:${p['java.main.tag']}").inside(p['docker.java.inside.basic']) { docker.image("springci/spring-data-with-mongodb-5.0:${p['java.main.tag']}").inside(p['docker.java.inside.basic']) {
sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' 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 'mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
sh 'sleep 10' sh 'sleep 10'
sh 'mongo --eval "rs.initiate({_id: \'rs0\', members:[{_id: 0, host: \'127.0.0.1:27017\'}]});"' sh 'mongo --eval "rs.initiate({_id: \'rs0\', members:[{_id: 0, host: \'127.0.0.1:27017\'}]});"'
sh 'sleep 15' 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' 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'
} }
} }
} }
} }
} }
stage("test: baseline (LTS)") { stage("test: baseline (LTS)") {
agent { agent {
@ -159,9 +159,8 @@ pipeline {
} }
steps { steps {
script { script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') { docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
docker.image("springci/spring-data-with-mongodb-4.4:${p['java.lts.tag']}").inside(p['docker.java.inside.basic']) { docker.image("springci/spring-data-with-mongodb-4.4:${p['java.lts.tag']}").inside(p['docker.java.inside.basic']) {
alwaysPull true
sh 'mkdir -p /tmp/mongodb/db /tmp/mongodb/log' 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 'mongod --setParameter transactionLifetimeLimitSeconds=90 --setParameter maxTransactionLockRequestTimeoutMillis=10000 --dbpath /tmp/mongodb/db --replSet rs0 --fork --logpath /tmp/mongodb/log/mongod.log &'
sh 'sleep 10' sh 'sleep 10'
@ -195,7 +194,7 @@ pipeline {
steps { steps {
script { script {
docker.withRegistry('', 'hub.docker.com-springbuildmaster') { docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) { docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -v' sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -v'
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' + sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +

11
ci/pipeline.properties

@ -1,15 +1,10 @@
# Java versions # Java versions
java.main.tag=17.0.1_12-jdk java.main.tag=17.0.1_12-jdk
java.next.tag=17.0.1_12-jdk
java.lts.tag=17.0.1_12-jdk
# Docker container images - standard # Docker container images - standard
docker.java.main.image=eclipse-temurin:${java.main.tag} docker.java.main.image=eclipse-temurin:${java.main.tag}
docker.java.next.image=eclipse-temurin:${java.next.tag}
docker.java.lts.image=eclipse-temurin:${java.lts.tag}
# Supported versions of MongoDB # Supported versions of MongoDB
docker.mongodb.4.0.version=4.0.23
docker.mongodb.4.4.version=4.4.4 docker.mongodb.4.4.version=4.4.4
docker.mongodb.5.0.version=5.0.3 docker.mongodb.5.0.version=5.0.3
@ -17,8 +12,12 @@ docker.mongodb.5.0.version=5.0.3
docker.redis.6.version=6.2.4 docker.redis.6.version=6.2.4
# Supported versions of Cassandra # Supported versions of Cassandra
docker.cassandra.3.version=3.11.10 docker.cassandra.3.version=3.11.11
# Docker environment settings # Docker environment settings
docker.java.inside.basic=-v $HOME:/tmp/jenkins-home docker.java.inside.basic=-v $HOME:/tmp/jenkins-home
docker.java.inside.docker=-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/tmp/jenkins-home docker.java.inside.docker=-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v $HOME:/tmp/jenkins-home
# Credentials
docker.registry=
docker.credentials=hub.docker.com-springbuildmaster

Loading…
Cancel
Save