46
46
CLIENT_LIBS_TEST_IMAGE_TAG : ${{ inputs.redis-version }}
47
47
run : |
48
48
set -e
49
-
49
+
50
50
echo "::group::Installing dependencies"
51
51
pip install -r dev_requirements.txt
52
52
pip uninstall -y redis # uninstall Redis package installed via redis-entraid
@@ -57,80 +57,79 @@ runs:
57
57
pip install -e ./hiredis-py
58
58
else
59
59
pip install "hiredis${{inputs.hiredis-version}}"
60
- fi
60
+ fi
61
61
echo "PARSER_BACKEND=$(echo "${{inputs.parser-backend}}_${{inputs.hiredis-version}}" | sed 's/[^a-zA-Z0-9]/_/g')" >> $GITHUB_ENV
62
62
else
63
63
echo "PARSER_BACKEND=${{inputs.parser-backend}}" >> $GITHUB_ENV
64
64
fi
65
65
echo "::endgroup::"
66
-
66
+
67
67
echo "::group::Starting Redis servers"
68
68
redis_major_version=$(echo "$REDIS_VERSION" | grep -oP '^\d+')
69
69
echo "REDIS_MAJOR_VERSION=${redis_major_version}" >> $GITHUB_ENV
70
-
70
+
71
71
if (( redis_major_version < 8 )); then
72
72
echo "Using redis-stack for module tests"
73
-
74
- # Mapping of redis version to stack version
73
+
74
+ # Mapping of redis version to stack version
75
75
declare -A redis_stack_version_mapping=(
76
76
["7.4.2"]="rs-7.4.0-v2"
77
77
["7.2.7"]="rs-7.2.0-v14"
78
- ["6.2.17"]="rs-6.2.6-v18"
79
78
)
80
-
79
+
81
80
if [[ -v redis_stack_version_mapping[$REDIS_VERSION] ]]; then
82
81
export CLIENT_LIBS_TEST_STACK_IMAGE_TAG=${redis_stack_version_mapping[$REDIS_VERSION]}
83
82
echo "REDIS_MOD_URL=redis://127.0.0.1:6479/0" >> $GITHUB_ENV
84
83
else
85
84
echo "Version not found in the mapping."
86
85
exit 1
87
86
fi
88
-
87
+
89
88
if (( redis_major_version < 7 )); then
90
89
export REDIS_STACK_EXTRA_ARGS="--tls-auth-clients optional --save ''"
91
- export REDIS_EXTRA_ARGS="--tls-auth-clients optional --save ''"
90
+ export REDIS_EXTRA_ARGS="--tls-auth-clients optional --save ''"
92
91
fi
93
-
92
+
94
93
invoke devenv --endpoints=all-stack
95
94
else
96
95
echo "Using redis CE for module tests"
97
96
echo "REDIS_MOD_URL=redis://127.0.0.1:6379" >> $GITHUB_ENV
98
97
invoke devenv --endpoints all
99
- fi
100
-
98
+ fi
99
+
101
100
sleep 10 # time to settle
102
101
echo "::endgroup::"
103
102
shell : bash
104
103
105
104
- name : Run tests
106
105
run : |
107
106
set -e
108
-
107
+
109
108
run_tests() {
110
109
local protocol=$1
111
110
local eventloop=""
112
-
111
+
113
112
if [ "${{inputs.event-loop}}" == "uvloop" ]; then
114
113
eventloop="--uvloop"
115
114
fi
116
-
115
+
117
116
echo "::group::RESP${protocol} standalone tests"
118
117
echo "REDIS_MOD_URL=${REDIS_MOD_URL}"
119
-
118
+
120
119
if (( $REDIS_MAJOR_VERSION < 7 )) && [ "$protocol" == "3" ]; then
121
120
echo "Skipping module tests: Modules doesn't support RESP3 for Redis versions < 7"
122
121
invoke standalone-tests --redis-mod-url=${REDIS_MOD_URL} $eventloop --protocol="${protocol}" --extra-markers="not redismod and not cp_integration"
123
- else
122
+ else
124
123
invoke standalone-tests --redis-mod-url=${REDIS_MOD_URL} $eventloop --protocol="${protocol}"
125
124
fi
126
-
125
+
127
126
echo "::endgroup::"
128
-
127
+
129
128
echo "::group::RESP${protocol} cluster tests"
130
129
invoke cluster-tests $eventloop --protocol=${protocol}
131
- echo "::endgroup::"
130
+ echo "::endgroup::"
132
131
}
133
-
132
+
134
133
run_tests 2 "${{inputs.event-loop}}"
135
134
run_tests 3 "${{inputs.event-loop}}"
136
135
shell : bash
0 commit comments