Add CI stage testing against valkey.

Closes #2923
This commit is contained in:
Mark Paluch
2024-06-05 11:24:41 +02:00
parent bca4021be5
commit eb78711888
7 changed files with 78 additions and 18 deletions

45
Jenkinsfile vendored
View File

@@ -33,7 +33,7 @@ pipeline {
steps {
script {
def image = docker.build("springci/spring-data-with-redis-6.2:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg REDIS=${p['docker.redis.6.version']} -f ci/openjdk17-redis-6.2/Dockerfile .")
def image = docker.build("springci/spring-data-with-redis-6.2:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg VERSION=${p['docker.redis.6.version']} -f ci/openjdk17-redis-6.2/Dockerfile .")
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
image.push()
}
@@ -53,7 +53,27 @@ pipeline {
steps {
script {
def image = docker.build("springci/spring-data-with-redis-7.2:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg REDIS=${p['docker.redis.7.version']} -f ci/openjdk17-redis-7.2/Dockerfile .")
def image = docker.build("springci/spring-data-with-redis-7.2:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg VERSION=${p['docker.redis.7.version']} -f ci/openjdk17-redis-7.2/Dockerfile .")
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
image.push()
}
}
}
}
stage('Publish JDK 17 + Valkey 7.2 Docker Image') {
when {
anyOf {
changeset "ci/openjdk17-valkey-7.2/Dockerfile"
changeset "Makefile"
changeset "ci/pipeline.properties"
}
}
agent { label 'data' }
options { timeout(time: 20, unit: 'MINUTES') }
steps {
script {
def image = docker.build("springci/spring-data-with-valkey-7.2:${p['java.main.tag']}", "--build-arg BASE=${p['docker.java.main.image']} --build-arg VERSION=${p['docker.redis.7.version']} -f ci/openjdk17-redis-7.2/Dockerfile .")
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
image.push()
}
@@ -73,7 +93,7 @@ pipeline {
steps {
script {
def image = docker.build("springci/spring-data-with-redis-6.2:${p['java.next.tag']}", "--build-arg BASE=${p['docker.java.next.image']} --build-arg REDIS=${p['docker.redis.6.version']} -f ci/openjdk21-redis-6.2/Dockerfile .")
def image = docker.build("springci/spring-data-with-redis-6.2:${p['java.next.tag']}", "--build-arg BASE=${p['docker.java.next.image']} --build-arg VERSION=${p['docker.redis.6.version']} -f ci/openjdk21-redis-6.2/Dockerfile .")
docker.withRegistry(p['docker.registry'], p['docker.credentials']) {
image.push()
}
@@ -172,6 +192,25 @@ pipeline {
}
}
}
stage("test: Valkey 7") {
agent {
label 'data'
}
options { timeout(time: 30, unit: 'MINUTES') }
environment {
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
DEVELOCITY_CACHE = credentials("${p['develocity.cache.credentials']}")
DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
}
steps {
script {
docker.image("harbor-repo.vmware.com/dockerhub-proxy-cache/springci/spring-data-with-valkey-7.2:${p['java.main.tag']}").inside('-v $HOME:/tmp/jenkins-home') {
sh "PROFILE=none LONG_TESTS=true JENKINS_USER_NAME=${p['jenkins.user.name']} ci/test.sh"
}
}
}
}
}
}

View File

@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
REDIS_VERSION:=7.2.5
VERSION:=7.2.5
PROJECT?=redis
GH_ORG?=redis
SPRING_PROFILE?=ci
@@ -177,10 +177,10 @@ clobber:
work/$(PROJECT)/bin/$(PROJECT)-cli work/$(PROJECT)/bin/$(PROJECT)-server:
@mkdir -p work/$(PROJECT)
curl -sSL https://github.com/$(GH_ORG)/$(PROJECT)/archive/refs/tags/$(REDIS_VERSION).tar.gz | tar xzf - -C work
$(MAKE) -C work/$(PROJECT)-$(REDIS_VERSION) -j
$(MAKE) -C work/$(PROJECT)-$(REDIS_VERSION) PREFIX=$(shell pwd)/work/$(PROJECT) install
rm -rf work/$(PROJECT)-$(REDIS_VERSION)
curl -sSL https://github.com/$(GH_ORG)/$(PROJECT)/archive/refs/tags/$(VERSION).tar.gz | tar xzf - -C work
$(MAKE) -C work/$(PROJECT)-$(VERSION) -j
$(MAKE) -C work/$(PROJECT)-$(VERSION) PREFIX=$(shell pwd)/work/$(PROJECT) install
rm -rf work/$(PROJECT)-$(VERSION)
start: server-start sentinel-start cluster-init
@@ -198,14 +198,14 @@ stop: server-stop sentinel-stop cluster-stop
test:
$(MAKE) start
sleep 1
./mvnw clean test -U -P$(SPRING_PROFILE) -Dredis.server.version=$(REDIS_VERSION) || (echo "maven failed $$?"; exit 1)
./mvnw clean test -U -P$(SPRING_PROFILE) || (echo "maven failed $$?"; exit 1)
$(MAKE) stop
$(MAKE) clean
all-tests:
$(MAKE) start
sleep 1
./mvnw clean test -U -DrunLongTests=true -P$(SPRING_PROFILE) -Dredis.server.version=$(REDIS_VERSION) || (echo "maven failed $$?"; exit 1)
./mvnw clean test -U -DrunLongTests=true -P$(SPRING_PROFILE) || (echo "maven failed $$?"; exit 1)
$(MAKE) stop
$(MAKE) clean

View File

@@ -1,7 +1,8 @@
ARG BASE
FROM ${BASE}
# Any ARG statements before FROM are cleared.
ARG REDIS
ARG VERSION
ENV VERSION=${VERSION}
# Copy Spring Data Redis's Makefile into the container
COPY ./Makefile /
@@ -10,7 +11,7 @@ RUN set -eux; \
# sed -i -e 's/http/https/g' /etc/apt/sources.list ; \
apt-get update ; \
apt-get install -y build-essential ; \
make work/redis/bin/redis-cli work/redis/bin/redis-server REDIS_VERSION=${REDIS}; \
make work/redis/bin/redis-cli work/redis/bin/redis-server VERSION=${VERSION}; \
chmod -R o+rw work; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*;

View File

@@ -1,8 +1,8 @@
ARG BASE
FROM ${BASE}
# Any ARG statements before FROM are cleared.
ARG REDIS
ENV REDIS_VERSION=${REDIS}
ARG VERSION
ENV VERSION=${VERSION}
# Copy Spring Data Redis's Makefile into the container
COPY ./Makefile /
@@ -11,7 +11,7 @@ RUN set -eux; \
# sed -i -e 's/http/https/g' /etc/apt/sources.list ; \
apt-get update ; \
apt-get install -y build-essential ; \
make work/redis/bin/redis-cli work/redis/bin/redis-server REDIS_VERSION=${REDIS}; \
make work/redis/bin/redis-cli work/redis/bin/redis-server VERSION=${VERSION}; \
chmod -R o+rw work; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*;

View File

@@ -0,0 +1,19 @@
ARG BASE
FROM ${BASE}
# Any ARG statements before FROM are cleared.
ARG VERSION
ENV VERSION=${VERSION}
ENV PROJECT=valkey
ENV GH_ORG=valkey-io
# Copy Spring Data Redis's Makefile into the container
COPY ./Makefile /
RUN set -eux; \
# sed -i -e 's/http/https/g' /etc/apt/sources.list ; \
apt-get update ; \
apt-get install -y build-essential ; \
make work/valkey/bin/valkey-cli work/valkey/bin/valkey-server VERSION=${VERSION}; \
chmod -R o+rw work; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*;

View File

@@ -1,7 +1,8 @@
ARG BASE
FROM ${BASE}
# Any ARG statements before FROM are cleared.
ARG REDIS
ARG VERSION
ENV VERSION=${VERSION}
# Copy Spring Data Redis's Makefile into the container
COPY ./Makefile /
@@ -10,7 +11,7 @@ RUN set -eux; \
# sed -i -e 's/http/https/g' /etc/apt/sources.list ; \
apt-get update ; \
apt-get install -y build-essential ; \
make work/redis/bin/redis-cli work/redis/bin/redis-server REDIS_VERSION=${REDIS}; \
make work/redis/bin/redis-cli work/redis/bin/redis-server VERSION=${VERSION}; \
chmod -R o+rw work; \
apt-get clean; \
rm -rf /var/lib/apt/lists/*;

View File

@@ -14,7 +14,7 @@ docker.mongodb.7.0.version=7.0.2
# Supported versions of Redis
docker.redis.6.version=6.2.13
docker.redis.7.version=7.2.4
docker.redis.7.version=7.2.5
# Supported versions of Cassandra
docker.cassandra.3.version=3.11.16