-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(tests): enable testing with Redis CE 8.0-M4 in CI (#3247)
* introduce github workflow for ci similar to the one in redis-py use prerelease for 8.0-M4 * Enable osscluster tests in CI * Add redis major version env Enable filtering test per redis major version Fix test for FT.SEARCH WITHSCORE, the default scorer has changed. fix Makefile syntax remove filter from github action fix makefile use the container name in Makefile * remove 1.20 from doctests * self review, cleanup, add comments * add comments, reorder prints, add default value for REDIS_MAJOR_VERSION
- Loading branch information
Showing
16 changed files
with
445 additions
and
160 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
name: 'Run go-redis tests' | ||
description: 'Runs go-redis tests against different Redis versions and configurations' | ||
inputs: | ||
go-version: | ||
description: 'Go version to use for running tests' | ||
default: '1.23' | ||
redis-version: | ||
description: 'Redis version to test against' | ||
required: true | ||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Set up ${{ inputs.go-version }} | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version: ${{ inputs.go-version }} | ||
|
||
- name: Setup Test environment | ||
env: | ||
REDIS_VERSION: ${{ inputs.redis-version }} | ||
CLIENT_LIBS_TEST_IMAGE: "redislabs/client-libs-test:${{ inputs.redis-version }}" | ||
run: | | ||
set -e | ||
redis_major_version=$(echo "$REDIS_VERSION" | grep -oP '^\d+') | ||
if (( redis_major_version < 8 )); then | ||
echo "Using redis-stack for module tests" | ||
else | ||
echo "Using redis CE for module tests" | ||
fi | ||
# Mapping of redis version to redis testing containers | ||
declare -A redis_version_mapping=( | ||
["8.0-M03"]="8.0-M04-pre" | ||
["7.4.2"]="rs-7.4.0-v2" | ||
["7.2.7"]="rs-7.2.0-v14" | ||
) | ||
if [[ -v redis_version_mapping[$REDIS_VERSION] ]]; then | ||
echo "REDIS_MAJOR_VERSION=${redis_major_version}" >> $GITHUB_ENV | ||
echo "REDIS_IMAGE=redis:${{ inputs.redis-version }}" >> $GITHUB_ENV | ||
echo "CLIENT_LIBS_TEST_IMAGE=redislabs/client-libs-test:${redis_version_mapping[$REDIS_VERSION]}" >> $GITHUB_ENV | ||
else | ||
echo "Version not found in the mapping." | ||
exit 1 | ||
fi | ||
sleep 10 # time to settle | ||
shell: bash | ||
- name: Set up Docker Compose environment with redis ${{ inputs.redis-version }} | ||
run: docker compose --profile all up -d | ||
shell: bash | ||
- name: Run tests | ||
env: | ||
RCE_DOCKER: "true" | ||
RE_CLUSTER: "false" | ||
run: | | ||
go test \ | ||
--ginkgo.skip-file="ring_test.go" \ | ||
--ginkgo.skip-file="sentinel_test.go" \ | ||
--ginkgo.skip-file="pubsub_test.go" \ | ||
--ginkgo.skip-file="gears_commands_test.go" \ | ||
--ginkgo.label-filter="!NonRedisEnterprise" | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,3 @@ | ||
dockers/ | ||
*.rdb | ||
testdata/* | ||
.idea/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,140 @@ | ||
--- | ||
|
||
services: | ||
|
||
redis-stanalone: | ||
image: redislabs/client-libs-test:8.0-M02 | ||
redis: | ||
image: ${CLIENT_LIBS_TEST_IMAGE:-redislabs/client-libs-test:7.4.1} | ||
container_name: redis-standalone | ||
environment: | ||
- TLS_ENABLED=yes | ||
- REDIS_CLUSTER=no | ||
- PORT=6379 | ||
- TLS_PORT=6666 | ||
|
||
command: ${REDIS_EXTRA_ARGS:---enable-debug-command yes --enable-module-command yes --tls-auth-clients optional --save ""} | ||
ports: | ||
- 6379:6379 | ||
- 6380:6379 | ||
- 6666:6666 # TLS port | ||
volumes: | ||
- "./dockers/redis-standalone:/redis/work" | ||
- "./dockers/standalone:/redis/work" | ||
profiles: | ||
- standalone | ||
- sentinel | ||
- all-stack | ||
- all | ||
|
||
cluster: | ||
image: ${CLIENT_LIBS_TEST_IMAGE:-redislabs/client-libs-test:7.4.1} | ||
container_name: redis-cluster | ||
environment: | ||
- NODES=6 | ||
- PORT=16600 | ||
command: "--cluster-enabled yes" | ||
ports: | ||
- "16600-16605:16600-16605" | ||
volumes: | ||
- "./dockers/cluster:/redis/work" | ||
profiles: | ||
- cluster | ||
- all-stack | ||
- all | ||
|
||
sentinel: | ||
image: ${REDIS_IMAGE:-redis:7.4.1} | ||
container_name: redis-sentinel | ||
depends_on: | ||
- redis | ||
entrypoint: "redis-sentinel /redis.conf --port 26379" | ||
ports: | ||
- 26379:26379 | ||
volumes: | ||
- "./dockers/sentinel.conf:/redis.conf" | ||
profiles: | ||
- sentinel | ||
- all-stack | ||
- all | ||
|
||
sentinel2: | ||
image: ${REDIS_IMAGE:-redis:7.4.1} | ||
container_name: redis-sentinel2 | ||
depends_on: | ||
- redis | ||
entrypoint: "redis-sentinel /redis.conf --port 26380" | ||
ports: | ||
- 26380:26380 | ||
volumes: | ||
- "./dockers/sentinel.conf:/redis.conf" | ||
profiles: | ||
- sentinel | ||
- all-stack | ||
- all | ||
|
||
sentinel3: | ||
image: ${REDIS_IMAGE:-redis:7.4.1} | ||
container_name: redis-sentinel3 | ||
depends_on: | ||
- redis | ||
entrypoint: "redis-sentinel /redis.conf --port 26381" | ||
ports: | ||
- 26381:26381 | ||
volumes: | ||
- "./dockers/sentinel.conf:/redis.conf" | ||
profiles: | ||
- sentinel | ||
- all-stack | ||
- all | ||
|
||
redisRing1: | ||
image: ${CLIENT_LIBS_TEST_IMAGE:-redislabs/client-libs-test:7.4.1} | ||
container_name: redis-ring-1 | ||
environment: | ||
- TLS_ENABLED=yes | ||
- REDIS_CLUSTER=no | ||
- PORT=6390 | ||
command: ${REDIS_EXTRA_ARGS:---enable-debug-command yes --enable-module-command yes --tls-auth-clients optional --save ""} | ||
ports: | ||
- 6390:6390 | ||
volumes: | ||
- "./dockers/ring1:/redis/work" | ||
profiles: | ||
- ring | ||
- cluster | ||
- sentinel | ||
- all-stack | ||
- all | ||
|
||
redisRing2: | ||
image: ${CLIENT_LIBS_TEST_IMAGE:-redislabs/client-libs-test:7.4.1} | ||
container_name: redis-ring-2 | ||
environment: | ||
- TLS_ENABLED=yes | ||
- REDIS_CLUSTER=no | ||
- PORT=6391 | ||
command: ${REDIS_EXTRA_ARGS:---enable-debug-command yes --enable-module-command yes --tls-auth-clients optional --save ""} | ||
ports: | ||
- 6391:6391 | ||
volumes: | ||
- "./dockers/ring2:/redis/work" | ||
profiles: | ||
- ring | ||
- cluster | ||
- sentinel | ||
- all-stack | ||
- all | ||
|
||
redisRing3: | ||
image: ${CLIENT_LIBS_TEST_IMAGE:-redislabs/client-libs-test:7.4.1} | ||
container_name: redis-ring-3 | ||
environment: | ||
- TLS_ENABLED=yes | ||
- REDIS_CLUSTER=no | ||
- PORT=6392 | ||
command: ${REDIS_EXTRA_ARGS:---enable-debug-command yes --enable-module-command yes --tls-auth-clients optional --save ""} | ||
ports: | ||
- 6392:6392 | ||
volumes: | ||
- "./dockers/ring3:/redis/work" | ||
profiles: | ||
- ring | ||
- cluster | ||
- sentinel | ||
- all-stack | ||
- all |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
sentinel resolve-hostnames yes | ||
sentinel monitor go-redis-test redis 6379 2 | ||
sentinel down-after-milliseconds go-redis-test 5000 | ||
sentinel failover-timeout go-redis-test 60000 | ||
sentinel parallel-syncs go-redis-test 1 |
Oops, something went wrong.