|
| 1 | +name: 'Run go-redis tests' |
| 2 | +description: 'Runs go-redis tests against different Redis versions and configurations' |
| 3 | +inputs: |
| 4 | + go-version: |
| 5 | + description: 'Go version to use for running tests' |
| 6 | + default: '1.23' |
| 7 | + redis-version: |
| 8 | + description: 'Redis version to test against' |
| 9 | + required: true |
| 10 | +runs: |
| 11 | + using: "composite" |
| 12 | + steps: |
| 13 | + - name: Set up ${{ inputs.go-version }} |
| 14 | + uses: actions/setup-go@v5 |
| 15 | + with: |
| 16 | + go-version: ${{ inputs.go-version }} |
| 17 | + |
| 18 | + - name: Setup Test environment |
| 19 | + env: |
| 20 | + REDIS_VERSION: ${{ inputs.redis-version }} |
| 21 | + CLIENT_LIBS_TEST_IMAGE: "redislabs/client-libs-test:${{ inputs.redis-version }}" |
| 22 | + run: | |
| 23 | + set -e |
| 24 | + redis_major_version=$(echo "$REDIS_VERSION" | grep -oP '^\d+') |
| 25 | + if (( redis_major_version < 8 )); then |
| 26 | + echo "Using redis-stack for module tests" |
| 27 | + else |
| 28 | + echo "Using redis CE for module tests" |
| 29 | + fi |
| 30 | + |
| 31 | + # Mapping of redis version to redis testing containers |
| 32 | + declare -A redis_version_mapping=( |
| 33 | + ["8.0-M03"]="8.0-M04-pre" |
| 34 | + ["7.4.2"]="rs-7.4.0-v2" |
| 35 | + ["7.2.7"]="rs-7.2.0-v14" |
| 36 | + ) |
| 37 | + |
| 38 | + if [[ -v redis_version_mapping[$REDIS_VERSION] ]]; then |
| 39 | + echo "REDIS_IMAGE=redis:${{ inputs.redis-version }}" >> $GITHUB_ENV |
| 40 | + echo "CLIENT_LIBS_TEST_IMAGE=redislabs/client-libs-test:${redis_version_mapping[$REDIS_VERSION]}" >> $GITHUB_ENV |
| 41 | + echo "REDIS_MOD_URL=redis://127.0.0.1:6479/0" >> $GITHUB_ENV |
| 42 | + else |
| 43 | + echo "Version not found in the mapping." |
| 44 | + exit 1 |
| 45 | + fi |
| 46 | + sleep 10 # time to settle |
| 47 | + shell: bash |
| 48 | + - name: Set up Docker Compose environment with redis ${{ inputs.redis-version }} |
| 49 | + run: docker compose --profile all up -d |
| 50 | + shell: bash |
| 51 | + - name: Run tests |
| 52 | + env: |
| 53 | + USE_CONTAINERIZED_REDIS: "true" |
| 54 | + RE_CLUSTER: "true" |
| 55 | + run: | |
| 56 | + go test \ |
| 57 | + --ginkgo.skip-file="ring_test.go" \ |
| 58 | + --ginkgo.skip-file="sentinel_test.go" \ |
| 59 | + --ginkgo.skip-file="osscluster_test.go" \ |
| 60 | + --ginkgo.skip-file="pubsub_test.go" \ |
| 61 | + --ginkgo.skip-file="gears_commands_test.go" \ |
| 62 | + --ginkgo.label-filter='!NonRedisEnterprise' |
| 63 | + shell: bash |
0 commit comments