57
Jenkinsfile
vendored
57
Jenkinsfile
vendored
@@ -1,7 +1,7 @@
|
||||
def p = [:]
|
||||
node {
|
||||
checkout scm
|
||||
p = readProperties interpolate: true, file: 'ci/pipeline.properties'
|
||||
checkout scm
|
||||
p = readProperties interpolate: true, file: 'ci/pipeline.properties'
|
||||
}
|
||||
|
||||
pipeline {
|
||||
@@ -22,7 +22,7 @@ pipeline {
|
||||
parallel {
|
||||
stage('Publish JDK 17 + Cassandra 3.11') {
|
||||
when {
|
||||
anyOf {
|
||||
anyOf {
|
||||
changeset "ci/openjdk17-8-cassandra-3.11/**"
|
||||
changeset "ci/pipeline.properties"
|
||||
}
|
||||
@@ -39,10 +39,29 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Publish JDK 20 + Cassandra 3.11') {
|
||||
when {
|
||||
anyOf {
|
||||
changeset "ci/openjdk20-8-cassandra-3.11/**"
|
||||
changeset "ci/pipeline.properties"
|
||||
}
|
||||
}
|
||||
agent { label 'data' }
|
||||
options { timeout(time: 30, unit: 'MINUTES') }
|
||||
|
||||
steps {
|
||||
script {
|
||||
def image = docker.build("springci/spring-data-with-cassandra-3.11:${p['java.next.tag']}", "--build-arg BASE=${p['docker.java.next.image']} --build-arg CASSANDRA=${p['docker.cassandra.3.version']} ci/openjdk20-8-cassandra-3.11/")
|
||||
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
|
||||
image.push()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage("test: baseline (Java 17)") {
|
||||
stage("test: baseline (main)") {
|
||||
when {
|
||||
beforeAgent(true)
|
||||
anyOf {
|
||||
@@ -68,6 +87,36 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage("Test other configurations") {
|
||||
when {
|
||||
beforeAgent(true)
|
||||
allOf {
|
||||
branch(pattern: "main|(\\d\\.\\d\\.x)", comparator: "REGEXP")
|
||||
not { triggeredBy 'UpstreamCause' }
|
||||
}
|
||||
}
|
||||
parallel {
|
||||
stage("test: baseline (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-cassandra-3.11:${p['java.next.tag']}").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 clean dependency:list verify -Dsort -U -B'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Release to artifactory') {
|
||||
when {
|
||||
beforeAgent(true)
|
||||
|
||||
27
ci/openjdk20-8-cassandra-3.11/Dockerfile
Normal file
27
ci/openjdk20-8-cassandra-3.11/Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
||||
ARG BASE
|
||||
FROM ${BASE}
|
||||
# Any ARG statements before FROM are cleared.
|
||||
ARG CASSANDRA
|
||||
|
||||
RUN set -eux; \
|
||||
CASSANDRA_URL="https://archive.apache.org/dist/cassandra/${CASSANDRA}/apache-cassandra-${CASSANDRA}-bin.tar.gz"; \
|
||||
sed -i -e 's/http/https/g' /etc/apt/sources.list ; \
|
||||
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/adoptium/temurin8-binaries/releases/download/jdk8u322-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz'; \
|
||||
curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
|
||||
mkdir -p /opt/java/openjdk8; \
|
||||
cd /opt/java/openjdk8; \
|
||||
tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
|
||||
rm -rf /tmp/openjdk.tar.gz;
|
||||
|
||||
ENV PATH="/opt/java/openjdk8/bin:$PATH"
|
||||
ENV MAX_HEAP_SIZE=1500M
|
||||
ENV HEAP_NEWSIZE=300M
|
||||
Reference in New Issue
Block a user