mirror of
https://github.com/redis/go-redis.git
synced 2025-07-29 17:41:15 +03:00
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
This commit is contained in:
62
.github/actions/run-tests/action.yml
vendored
Normal file
62
.github/actions/run-tests/action.yml
vendored
Normal file
@ -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
|
51
.github/workflows/build.yml
vendored
51
.github/workflows/build.yml
vendored
@ -16,15 +16,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
go-version: [1.19.x, 1.20.x, 1.21.x]
|
||||
|
||||
services:
|
||||
redis:
|
||||
image: redis/redis-stack-server:latest
|
||||
options: >-
|
||||
--health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
ports:
|
||||
- 6379:6379
|
||||
go-version: [1.21.x, 1.22.x, 1.23.x]
|
||||
|
||||
steps:
|
||||
- name: Set up ${{ matrix.go-version }}
|
||||
@ -50,39 +42,22 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
redis_version:
|
||||
- "8.0-M01"
|
||||
- "7.4.1"
|
||||
- "7.2.6"
|
||||
- "6.2.16"
|
||||
redis-version:
|
||||
- "8.0-M03" # 8.0 milestone 4
|
||||
- "7.4.2" # should use redis stack 7.4
|
||||
- "7.2.7" # should redis stack 7.2
|
||||
go-version:
|
||||
- "1.19.x"
|
||||
- "1.20.x"
|
||||
- "1.21.x"
|
||||
- "1.22.x"
|
||||
- "1.23.x"
|
||||
|
||||
steps:
|
||||
- name: Set up ${{ matrix.go-version }}
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Set up Docker Compose environment
|
||||
- name: Set up Docker Compose environment
|
||||
run: |
|
||||
docker compose --profile all up -d
|
||||
|
||||
|
||||
- name: Run tests
|
||||
env:
|
||||
USE_CONTAINERIZED_REDIS: "true"
|
||||
RE_CLUSTER: "true"
|
||||
run: |
|
||||
go test \
|
||||
--ginkgo.skip-file="ring_test.go" \
|
||||
--ginkgo.skip-file="sentinel_test.go" \
|
||||
--ginkgo.skip-file="osscluster_test.go" \
|
||||
--ginkgo.skip-file="pubsub_test.go" \
|
||||
--ginkgo.skip-file="gears_commands_test.go" \
|
||||
--ginkgo.label-filter='!NonRedisEnterprise'
|
||||
uses: ./.github/actions/run-tests
|
||||
with:
|
||||
go-version: ${{matrix.go-version}}
|
||||
redis-version: ${{ matrix.redis-version }}
|
||||
|
||||
|
2
.github/workflows/doctests.yaml
vendored
2
.github/workflows/doctests.yaml
vendored
@ -25,7 +25,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
go-version: [ "1.18", "1.19", "1.20", "1.21" ]
|
||||
go-version: [ "1.21", "1.22", "1.23" ]
|
||||
|
||||
steps:
|
||||
- name: Set up ${{ matrix.go-version }}
|
||||
|
6
.github/workflows/test-redis-enterprise.yml
vendored
6
.github/workflows/test-redis-enterprise.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
go-version: [1.21.x]
|
||||
go-version: [1.23.x]
|
||||
re-build: ["7.4.2-54"]
|
||||
|
||||
steps:
|
||||
@ -46,8 +46,8 @@ jobs:
|
||||
|
||||
- name: Test
|
||||
env:
|
||||
RE_CLUSTER: "1"
|
||||
USE_CONTAINERIZED_REDIS: "1"
|
||||
RE_CLUSTER: true
|
||||
REDIS_MAJOR_VERSION: 7
|
||||
run: |
|
||||
go test \
|
||||
--ginkgo.skip-file="ring_test.go" \
|
||||
|
Reference in New Issue
Block a user