diff --git a/Jenkinsfile b/Jenkinsfile index cc0ffa98a..26ac76126 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,48 +14,16 @@ pipeline { stages { stage("Docker images") { parallel { - stage('Publish JDK 8 + Cassandra 3.11') { - when { - changeset "ci/openjdk8-cassandra-3.11/**" - } - agent { label 'data' } - options { timeout(time: 30, unit: 'MINUTES') } - - steps { - script { - def image = docker.build("springci/spring-data-openjdk8-cassandra-3.11", "ci/openjdk8-cassandra-3.11/") - docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - image.push() - } - } - } - } - stage('Publish JDK 11 + Cassandra 3.11') { - when { - changeset "ci/openjdk11-8-cassandra-3.11/**" - } - agent { label 'data' } - options { timeout(time: 30, unit: 'MINUTES') } - - steps { - script { - def image = docker.build("springci/spring-data-openjdk11-8-cassandra-3.11", "ci/openjdk11-8-cassandra-3.11/") - docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - image.push() - } - } - } - } stage('Publish JDK 17 + Cassandra 3.11') { when { - changeset "ci/openjdk17-8-cassandra-3.11/**" + changeset "ci/openjdk17-cassandra-3.11/**" } agent { label 'data' } options { timeout(time: 30, unit: 'MINUTES') } steps { script { - def image = docker.build("springci/spring-data-openjdk17-8-cassandra-3.11", "ci/openjdk17-8-cassandra-3.11/") + def image = docker.build("springci/spring-data-openjdk17-cassandra-3.11", "ci/openjdk17-cassandra-3.11/") docker.withRegistry('', 'hub.docker.com-springbuildmaster') { image.push() } @@ -65,7 +33,7 @@ pipeline { } } - stage("test: baseline (jdk8)") { + stage("test: baseline (jdk17)") { when { beforeAgent(true) anyOf { @@ -83,7 +51,7 @@ pipeline { steps { script { docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('springci/spring-data-openjdk8-cassandra-3.11:latest').inside('-v $HOME:/tmp/jenkins-home') { + docker.image('springci/spring-data-openjdk17-cassandra-3.11:latest').inside('-v $HOME:/tmp/jenkins-home') { sh 'mkdir -p /tmp/jenkins-home' sh 'JAVA_HOME=/opt/java/openjdk /opt/cassandra/bin/cassandra -R &' sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,external-cassandra clean dependency:list verify -Dsort -U -B' @@ -93,57 +61,6 @@ pipeline { } } - stage("Test other configurations") { - when { - beforeAgent(true) - allOf { - branch(pattern: "main|(\\d\\.\\d\\.x)", comparator: "REGEXP") - not { triggeredBy 'UpstreamCause' } - } - } - parallel { - stage("test: baseline (jdk11)") { - agent { - label 'data' - } - options { timeout(time: 30, unit: 'MINUTES') } - environment { - ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c') - } - steps { - script { - docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('springci/spring-data-openjdk11-8-cassandra-3.11:latest').inside('-v $HOME:/tmp/jenkins-home') { - sh 'mkdir -p /tmp/jenkins-home' - sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &' - sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,external-cassandra,java11 clean dependency:list verify -Dsort -U -B' - } - } - } - } - } - stage("test: baseline (jdk17)") { - agent { - label 'data' - } - options { timeout(time: 30, unit: 'MINUTES') } - environment { - ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c') - } - steps { - script { - docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('springci/spring-data-openjdk17-8-cassandra-3.11:latest').inside('-v $HOME:/tmp/jenkins-home') { - sh 'mkdir -p /tmp/jenkins-home' - sh 'JAVA_HOME=/opt/java/openjdk8 /opt/cassandra/bin/cassandra -R &' - sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,external-cassandra,java11 clean dependency:list verify -Dsort -U -B' - } - } - } - } - } - } - } stage('Release to artifactory') { when { beforeAgent(true) @@ -164,7 +81,7 @@ pipeline { steps { script { docker.withRegistry('', 'hub.docker.com-springbuildmaster') { - docker.image('adoptopenjdk/openjdk8:latest').inside('-v $HOME:/tmp/jenkins-home') { + docker.image('adoptopenjdk/openjdk17:latest').inside('-v $HOME:/tmp/jenkins-home') { sh 'mkdir -p /tmp/jenkins-home' sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' + '-Dartifactory.server=https://repo.spring.io ' + @@ -179,6 +96,36 @@ pipeline { } } } + + stage('Publish documentation') { + when { + branch 'main' + } + agent { + label 'data' + } + options { timeout(time: 20, unit: 'MINUTES') } + + environment { + ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c') + } + + steps { + script { + docker.withRegistry('', 'hub.docker.com-springbuildmaster') { + docker.image('adoptopenjdk/openjdk17:latest').inside('-v $HOME:/tmp/jenkins-home') { + sh 'mkdir -p /tmp/jenkins-home' + sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,distribute ' + + '-Dartifactory.server=https://repo.spring.io ' + + "-Dartifactory.username=${ARTIFACTORY_USR} " + + "-Dartifactory.password=${ARTIFACTORY_PSW} " + + "-Dartifactory.distribution-repository=temp-private-local " + + '-Dmaven.test.skip=true clean deploy -U -B' + } + } + } + } + } } post { diff --git a/ci/openjdk17-cassandra-3.11/Dockerfile b/ci/openjdk17-cassandra-3.11/Dockerfile new file mode 100644 index 000000000..67d0ee2c5 --- /dev/null +++ b/ci/openjdk17-cassandra-3.11/Dockerfile @@ -0,0 +1,23 @@ +FROM adoptopenjdk/openjdk17:latest + +RUN set -eux; \ + CASSANDRA_URL='https://www-us.apache.org/dist/cassandra/3.11.10/apache-cassandra-3.11.10-bin.tar.gz'; \ + curl -LfsSo /tmp/cassandra.tar.gz ${CASSANDRA_URL}; \ + mkdir -p /opt/cassandra /opt/cassandra/data /opt/cassandra/logs; \ + cd /opt/cassandra; \ + tar -xf /tmp/cassandra.tar.gz --strip-components=1; \ + rm -rf /tmp/cassandra.tar.gz; \ + chmod -R a+rwx /opt/cassandra; \ + useradd -d /home/jenkins-docker -m -u 1001 -U jenkins-docker; + +RUN set -eux; \ + BINARY_URL='https://github.com/AdoptOpenJDK/openjdk17-binaries/releases/download/jdk17/OpenJDK17-jdk_x64_linux_hotspot_17.tar.gz'; \ + curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \ + mkdir -p /opt/java/openjdk17; \ + cd /opt/java/openjdk17; \ + tar -xf /tmp/openjdk.tar.gz --strip-components=1; \ + rm -rf /tmp/openjdk.tar.gz; + +ENV PATH="/opt/java/openjdk17/bin:$PATH" +ENV MAX_HEAP_SIZE=1500M +ENV HEAP_NEWSIZE=300M