summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/.github/workflows
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:52:54 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:52:54 +0100
commitdcacc00e3750300617ba6e16eb346713f91a783a (patch)
tree38e2d4fb5ed9d119711d4295c6eda4b014af73fd /examples/redis-unstable/.github/workflows
parent58dac10aeb8f5a041c46bddbeaf4c7966a99b998 (diff)
downloadcrep-dcacc00e3750300617ba6e16eb346713f91a783a.tar.gz
Remove testing data
Diffstat (limited to 'examples/redis-unstable/.github/workflows')
-rw-r--r--examples/redis-unstable/.github/workflows/ci.yml102
-rw-r--r--examples/redis-unstable/.github/workflows/codecov.yml24
-rw-r--r--examples/redis-unstable/.github/workflows/codeql-analysis.yml33
-rw-r--r--examples/redis-unstable/.github/workflows/coverity.yml32
-rw-r--r--examples/redis-unstable/.github/workflows/daily.yml1287
-rw-r--r--examples/redis-unstable/.github/workflows/external.yml85
-rw-r--r--examples/redis-unstable/.github/workflows/redis_docs_sync.yaml35
-rw-r--r--examples/redis-unstable/.github/workflows/reply-schemas-linter.yml22
-rw-r--r--examples/redis-unstable/.github/workflows/spell-check.yml32
9 files changed, 0 insertions, 1652 deletions
diff --git a/examples/redis-unstable/.github/workflows/ci.yml b/examples/redis-unstable/.github/workflows/ci.yml
deleted file mode 100644
index 4fe75a6..0000000
--- a/examples/redis-unstable/.github/workflows/ci.yml
+++ /dev/null
@@ -1,102 +0,0 @@
1name: CI
2
3on: [push, pull_request]
4
5jobs:
6
7 test-ubuntu-latest:
8 runs-on: ubuntu-latest
9 steps:
10 - uses: actions/checkout@v4
11 - name: make
12 # Fail build if there are warnings
13 # build with TLS just for compilation coverage
14 run: make REDIS_CFLAGS='-Werror' BUILD_TLS=yes
15 - name: test
16 run: |
17 sudo apt-get install tcl8.6 tclx
18 ./runtest --verbose --tags -slow --dump-logs
19 - name: validate commands.def up to date
20 run: |
21 touch src/commands/ping.json
22 make commands.def
23 dirty=$(git diff)
24 if [[ ! -z $dirty ]]; then echo $dirty; exit 1; fi
25
26 test-sanitizer-address:
27 runs-on: ubuntu-latest
28 steps:
29 - uses: actions/checkout@v4
30 - name: make
31 # build with TLS module just for compilation coverage
32 run: make SANITIZER=address REDIS_CFLAGS='-Werror -DDEBUG_ASSERTIONS -DREDIS_TEST' BUILD_TLS=module
33 - name: testprep
34 run: sudo apt-get install tcl8.6 tclx -y
35 - name: test
36 run: ./runtest --verbose --tags -slow --dump-logs
37
38 build-debian-old:
39 runs-on: ubuntu-latest
40 container: debian:buster
41 steps:
42 - uses: actions/checkout@v4
43 - name: make
44 run: |
45 sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list
46 sed -i 's|http://security.debian.org|http://archive.debian.org/debian-security|g' /etc/apt/sources.list
47 apt-get update && apt-get install -y build-essential
48 make REDIS_CFLAGS='-Werror'
49
50 build-macos-latest:
51 runs-on: macos-latest
52 steps:
53 - uses: actions/checkout@v4
54 - name: make
55 # Fail build if there are warnings
56 # build with TLS just for compilation coverage
57 run: make REDIS_CFLAGS='-Werror' BUILD_TLS=yes
58
59 build-32bit:
60 runs-on: ubuntu-latest
61 steps:
62 - uses: actions/checkout@v4
63 - name: make
64 run: |
65 sudo apt-get update && sudo apt-get install libc6-dev-i386 gcc-multilib g++-multilib
66 make REDIS_CFLAGS='-Werror' 32bit
67
68 build-libc-malloc:
69 runs-on: ubuntu-latest
70 steps:
71 - uses: actions/checkout@v4
72 - name: make
73 run: make REDIS_CFLAGS='-Werror' MALLOC=libc
74
75 build-centos-jemalloc:
76 runs-on: ubuntu-latest
77 container: quay.io/centos/centos:stream9
78 steps:
79 - uses: actions/checkout@v4
80 - name: make
81 run: |
82 dnf -y install which gcc gcc-c++ make
83 make REDIS_CFLAGS='-Werror'
84
85 build-old-chain-jemalloc:
86 runs-on: ubuntu-latest
87 container: ubuntu:20.04
88 steps:
89 - uses: actions/checkout@v4
90 - name: make
91 run: |
92 apt-get update
93 apt-get install -y gnupg2
94 echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list
95 echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
96 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
97 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
98 apt-get update
99 apt-get install -y make gcc-4.8 g++-4.8
100 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
101 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
102 make CC=gcc REDIS_CFLAGS='-Werror'
diff --git a/examples/redis-unstable/.github/workflows/codecov.yml b/examples/redis-unstable/.github/workflows/codecov.yml
deleted file mode 100644
index 82656ac..0000000
--- a/examples/redis-unstable/.github/workflows/codecov.yml
+++ /dev/null
@@ -1,24 +0,0 @@
1name: "Codecov"
2
3# Enabling on each push is to display the coverage changes in every PR,
4# where each PR needs to be compared against the coverage of the head commit
5on: [push, pull_request]
6
7jobs:
8 code-coverage:
9 runs-on: ubuntu-22.04
10
11 steps:
12 - name: Checkout repository
13 uses: actions/checkout@v4
14
15 - name: Install lcov and run test
16 run: |
17 sudo apt-get install lcov
18 make lcov
19
20 - name: Upload coverage reports to Codecov
21 uses: codecov/codecov-action@v4
22 with:
23 token: ${{ secrets.CODECOV_TOKEN }}
24 file: ./src/redis.info
diff --git a/examples/redis-unstable/.github/workflows/codeql-analysis.yml b/examples/redis-unstable/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index c5411b9..0000000
--- a/examples/redis-unstable/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,33 +0,0 @@
1name: "CodeQL"
2
3on:
4 pull_request:
5 schedule:
6 # run weekly new vulnerability was added to the database
7 - cron: '0 0 * * 0'
8
9jobs:
10 analyze:
11 name: Analyze
12 runs-on: ubuntu-latest
13 if: github.event_name != 'schedule' || github.repository == 'redis/redis'
14
15 strategy:
16 fail-fast: false
17 matrix:
18 language: [ 'cpp' ]
19
20 steps:
21 - name: Checkout repository
22 uses: actions/checkout@v4
23
24 - name: Initialize CodeQL
25 uses: github/codeql-action/init@v3
26 with:
27 languages: ${{ matrix.language }}
28
29 - name: Autobuild
30 uses: github/codeql-action/autobuild@v3
31
32 - name: Perform CodeQL Analysis
33 uses: github/codeql-action/analyze@v3
diff --git a/examples/redis-unstable/.github/workflows/coverity.yml b/examples/redis-unstable/.github/workflows/coverity.yml
deleted file mode 100644
index 0237c87..0000000
--- a/examples/redis-unstable/.github/workflows/coverity.yml
+++ /dev/null
@@ -1,32 +0,0 @@
1# Creates and uploads a Coverity build on a schedule
2name: Coverity Scan
3on:
4 schedule:
5 # Run once daily, since below 500k LOC can have 21 builds per week, per https://scan.coverity.com/faq#frequency
6 - cron: '0 0 * * *'
7 # Support manual execution
8 workflow_dispatch:
9jobs:
10 coverity:
11 if: github.repository == 'redis/redis'
12 runs-on: ubuntu-latest
13 steps:
14 - uses: actions/checkout@main
15 - name: Download and extract the Coverity Build Tool
16 run: |
17 wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=redis-unstable" -O cov-analysis-linux64.tar.gz
18 mkdir cov-analysis-linux64
19 tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
20 - name: Install Redis dependencies
21 run: sudo apt install -y gcc tcl8.6 tclx procps libssl-dev
22 - name: Build with cov-build
23 run: cov-analysis-linux64/bin/cov-build --dir cov-int make
24 - name: Upload the result
25 run: |
26 tar czvf cov-int.tgz cov-int
27 curl \
28 --form project=redis-unstable \
29 --form email=${{ secrets.COVERITY_SCAN_EMAIL }} \
30 --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \
31 --form file=@cov-int.tgz \
32 https://scan.coverity.com/builds
diff --git a/examples/redis-unstable/.github/workflows/daily.yml b/examples/redis-unstable/.github/workflows/daily.yml
deleted file mode 100644
index 0e478bb..0000000
--- a/examples/redis-unstable/.github/workflows/daily.yml
+++ /dev/null
@@ -1,1287 +0,0 @@
1name: Daily
2
3on:
4 pull_request:
5 branches:
6 # any PR to a release branch.
7 - '[0-9].[0-9]'
8 schedule:
9 - cron: '0 0 * * *'
10 workflow_dispatch:
11 inputs:
12 skipjobs:
13 description: 'jobs to skip (delete the ones you wanna keep, do not leave empty)'
14 default: 'valgrind,sanitizer,tls,freebsd,macos,alpine,32bit,iothreads,ubuntu,centos,malloc,specific,fortify,reply-schema,oldTC,defrag,vectorset'
15 skiptests:
16 description: 'tests to skip (delete the ones you wanna keep, do not leave empty)'
17 default: 'redis,modules,sentinel,cluster,unittest'
18 test_args:
19 description: 'extra test arguments'
20 default: ''
21 cluster_test_args:
22 description: 'extra cluster / sentinel test arguments'
23 default: ''
24 use_repo:
25 description: 'repo owner and name'
26 default: 'redis/redis'
27 use_git_ref:
28 description: 'git branch or sha to use'
29 default: 'unstable'
30
31
32jobs:
33
34 test-ubuntu-jemalloc:
35 runs-on: ubuntu-latest
36 if: |
37 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
38 !contains(github.event.inputs.skipjobs, 'ubuntu')
39 timeout-minutes: 14400
40 steps:
41 - name: prep
42 if: github.event_name == 'workflow_dispatch'
43 run: |
44 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
45 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
46 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
47 echo "skiptests: ${{github.event.inputs.skiptests}}"
48 echo "test_args: ${{github.event.inputs.test_args}}"
49 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
50 - uses: actions/checkout@v4
51 with:
52 repository: ${{ env.GITHUB_REPOSITORY }}
53 ref: ${{ env.GITHUB_HEAD_REF }}
54 - name: make
55 run: make REDIS_CFLAGS='-Werror -DREDIS_TEST'
56 - name: testprep
57 run: sudo apt-get install tcl8.6 tclx
58 - name: test
59 if: true && !contains(github.event.inputs.skiptests, 'redis')
60 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
61 - name: sentinel tests
62 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
63 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
64 - name: cluster tests
65 if: true && !contains(github.event.inputs.skiptests, 'cluster')
66 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
67 - name: unittest
68 if: true && !contains(github.event.inputs.skiptests, 'unittest')
69 run: ./src/redis-server test all --accurate
70
71 test-ubuntu-jemalloc-fortify:
72 runs-on: ubuntu-latest
73 if: |
74 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
75 !contains(github.event.inputs.skipjobs, 'fortify')
76 timeout-minutes: 14400
77 steps:
78 - name: prep
79 if: github.event_name == 'workflow_dispatch'
80 run: |
81 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
82 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
83 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
84 echo "skiptests: ${{github.event.inputs.skiptests}}"
85 echo "test_args: ${{github.event.inputs.test_args}}"
86 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
87 - uses: actions/checkout@v4
88 with:
89 repository: ${{ env.GITHUB_REPOSITORY }}
90 ref: ${{ env.GITHUB_HEAD_REF }}
91 - name: make
92 run: |
93 apt-get update && apt-get install -y make gcc g++
94 make CC=gcc REDIS_CFLAGS='-Werror -DREDIS_TEST -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
95 - name: testprep
96 run: sudo apt-get install -y tcl8.6 tclx procps
97 - name: test
98 if: true && !contains(github.event.inputs.skiptests, 'redis')
99 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
100 - name: sentinel tests
101 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
102 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
103 - name: cluster tests
104 if: true && !contains(github.event.inputs.skiptests, 'cluster')
105 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
106 - name: unittest
107 if: true && !contains(github.event.inputs.skiptests, 'unittest')
108 run: ./src/redis-server test all --accurate
109
110 test-ubuntu-libc-malloc:
111 runs-on: ubuntu-latest
112 if: |
113 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
114 !contains(github.event.inputs.skipjobs, 'malloc')
115 timeout-minutes: 14400
116 steps:
117 - name: prep
118 if: github.event_name == 'workflow_dispatch'
119 run: |
120 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
121 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
122 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
123 echo "skiptests: ${{github.event.inputs.skiptests}}"
124 echo "test_args: ${{github.event.inputs.test_args}}"
125 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
126 - uses: actions/checkout@v4
127 with:
128 repository: ${{ env.GITHUB_REPOSITORY }}
129 ref: ${{ env.GITHUB_HEAD_REF }}
130 - name: make
131 run: make MALLOC=libc REDIS_CFLAGS='-Werror'
132 - name: testprep
133 run: sudo apt-get install tcl8.6 tclx
134 - name: test
135 if: true && !contains(github.event.inputs.skiptests, 'redis')
136 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
137 - name: sentinel tests
138 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
139 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
140 - name: cluster tests
141 if: true && !contains(github.event.inputs.skiptests, 'cluster')
142 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
143
144 test-ubuntu-no-malloc-usable-size:
145 runs-on: ubuntu-latest
146 if: |
147 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
148 !contains(github.event.inputs.skipjobs, 'malloc')
149 timeout-minutes: 14400
150 steps:
151 - name: prep
152 if: github.event_name == 'workflow_dispatch'
153 run: |
154 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
155 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
156 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
157 echo "skiptests: ${{github.event.inputs.skiptests}}"
158 echo "test_args: ${{github.event.inputs.test_args}}"
159 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
160 - uses: actions/checkout@v4
161 with:
162 repository: ${{ env.GITHUB_REPOSITORY }}
163 ref: ${{ env.GITHUB_HEAD_REF }}
164 - name: make
165 run: make MALLOC=libc CFLAGS=-DNO_MALLOC_USABLE_SIZE REDIS_CFLAGS='-Werror'
166 - name: testprep
167 run: sudo apt-get install tcl8.6 tclx
168 - name: test
169 if: true && !contains(github.event.inputs.skiptests, 'redis')
170 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
171 - name: sentinel tests
172 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
173 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
174 - name: cluster tests
175 if: true && !contains(github.event.inputs.skiptests, 'cluster')
176 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
177
178 test-ubuntu-32bit:
179 runs-on: ubuntu-latest
180 if: |
181 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
182 !contains(github.event.inputs.skipjobs, '32bit')
183 timeout-minutes: 14400
184 steps:
185 - name: prep
186 if: github.event_name == 'workflow_dispatch'
187 run: |
188 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
189 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
190 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
191 echo "skiptests: ${{github.event.inputs.skiptests}}"
192 echo "test_args: ${{github.event.inputs.test_args}}"
193 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
194 - uses: actions/checkout@v4
195 with:
196 repository: ${{ env.GITHUB_REPOSITORY }}
197 ref: ${{ env.GITHUB_HEAD_REF }}
198 - name: make
199 run: |
200 sudo apt-get update && sudo apt-get install libc6-dev-i386 g++ gcc-multilib g++-multilib
201 make 32bit REDIS_CFLAGS='-Werror -DREDIS_TEST'
202 make -C tests/modules 32bit # the script below doesn't have an argument, we must build manually ahead of time
203 - name: testprep
204 run: sudo apt-get install tcl8.6 tclx
205 - name: test
206 if: true && !contains(github.event.inputs.skiptests, 'redis')
207 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
208 - name: sentinel tests
209 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
210 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
211 - name: cluster tests
212 if: true && !contains(github.event.inputs.skiptests, 'cluster')
213 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
214 - name: unittest
215 if: true && !contains(github.event.inputs.skiptests, 'unittest')
216 run: ./src/redis-server test all --accurate
217
218 test-ubuntu-tls:
219 runs-on: ubuntu-latest
220 if: |
221 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
222 !contains(github.event.inputs.skipjobs, 'tls')
223 timeout-minutes: 14400
224 steps:
225 - name: prep
226 if: github.event_name == 'workflow_dispatch'
227 run: |
228 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
229 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
230 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
231 echo "skiptests: ${{github.event.inputs.skiptests}}"
232 echo "test_args: ${{github.event.inputs.test_args}}"
233 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
234 - uses: actions/checkout@v4
235 with:
236 repository: ${{ env.GITHUB_REPOSITORY }}
237 ref: ${{ env.GITHUB_HEAD_REF }}
238 - name: make
239 run: |
240 make BUILD_TLS=yes REDIS_CFLAGS='-Werror'
241 - name: testprep
242 run: |
243 sudo apt-get install tcl8.6 tclx tcl-tls
244 ./utils/gen-test-certs.sh
245 - name: test
246 if: true && !contains(github.event.inputs.skiptests, 'redis')
247 run: |
248 ./runtest --accurate --verbose --dump-logs --tls --dump-logs ${{github.event.inputs.test_args}}
249 - name: sentinel tests
250 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
251 run: |
252 ./runtest-sentinel --tls ${{github.event.inputs.cluster_test_args}}
253 - name: cluster tests
254 if: true && !contains(github.event.inputs.skiptests, 'cluster')
255 run: |
256 ./runtest-cluster --tls ${{github.event.inputs.cluster_test_args}}
257
258 test-ubuntu-tls-no-tls:
259 runs-on: ubuntu-latest
260 if: |
261 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
262 !contains(github.event.inputs.skipjobs, 'tls')
263 timeout-minutes: 14400
264 steps:
265 - name: prep
266 if: github.event_name == 'workflow_dispatch'
267 run: |
268 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
269 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
270 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
271 echo "skiptests: ${{github.event.inputs.skiptests}}"
272 echo "test_args: ${{github.event.inputs.test_args}}"
273 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
274 - uses: actions/checkout@v4
275 with:
276 repository: ${{ env.GITHUB_REPOSITORY }}
277 ref: ${{ env.GITHUB_HEAD_REF }}
278 - name: make
279 run: |
280 make BUILD_TLS=yes REDIS_CFLAGS='-Werror'
281 - name: testprep
282 run: |
283 sudo apt-get install tcl8.6 tclx tcl-tls
284 ./utils/gen-test-certs.sh
285 - name: test
286 if: true && !contains(github.event.inputs.skiptests, 'redis')
287 run: |
288 ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
289 - name: sentinel tests
290 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
291 run: |
292 ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
293 - name: cluster tests
294 if: true && !contains(github.event.inputs.skiptests, 'cluster')
295 run: |
296 ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
297
298 test-ubuntu-io-threads:
299 runs-on: ubuntu-latest
300 if: |
301 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
302 !contains(github.event.inputs.skipjobs, 'iothreads')
303 timeout-minutes: 14400
304 steps:
305 - name: prep
306 if: github.event_name == 'workflow_dispatch'
307 run: |
308 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
309 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
310 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
311 echo "skiptests: ${{github.event.inputs.skiptests}}"
312 echo "test_args: ${{github.event.inputs.test_args}}"
313 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
314 - uses: actions/checkout@v4
315 with:
316 repository: ${{ env.GITHUB_REPOSITORY }}
317 ref: ${{ env.GITHUB_HEAD_REF }}
318 - name: make
319 run: |
320 make REDIS_CFLAGS='-Werror'
321 - name: testprep
322 run: sudo apt-get install tcl8.6 tclx
323 - name: test
324 if: true && !contains(github.event.inputs.skiptests, 'redis')
325 run: ./runtest --config io-threads 4 --accurate --verbose --tags "network iothreads psync2 repl failover" --dump-logs ${{github.event.inputs.test_args}}
326 - name: cluster tests
327 if: true && !contains(github.event.inputs.skiptests, 'cluster')
328 run: ./runtest-cluster --config io-threads 4 ${{github.event.inputs.cluster_test_args}}
329
330 test-ubuntu-reclaim-cache:
331 runs-on: ubuntu-latest
332 if: |
333 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
334 !contains(github.event.inputs.skipjobs, 'specific')
335 timeout-minutes: 14400
336 steps:
337 - name: prep
338 if: github.event_name == 'workflow_dispatch'
339 run: |
340 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
341 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
342 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
343 echo "skiptests: ${{github.event.inputs.skiptests}}"
344 echo "test_args: ${{github.event.inputs.test_args}}"
345 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
346 - uses: actions/checkout@v4
347 with:
348 repository: ${{ env.GITHUB_REPOSITORY }}
349 ref: ${{ env.GITHUB_HEAD_REF }}
350 - name: make
351 run: |
352 make REDIS_CFLAGS='-Werror'
353 - name: testprep
354 run: |
355 sudo apt-get install vmtouch
356 mkdir /tmp/master
357 mkdir /tmp/slave
358 - name: warm up
359 run: |
360 ./src/redis-server --daemonize yes --logfile /dev/null
361 ./src/redis-benchmark -n 1 > /dev/null
362 ./src/redis-cli save | grep OK > /dev/null
363 vmtouch -v ./dump.rdb > /dev/null
364 - name: test
365 run: |
366 echo "test SAVE doesn't increase cache"
367 CACHE0=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}')
368 echo "$CACHE0"
369 ./src/redis-server --daemonize yes --logfile /dev/null --dir /tmp/master --port 8080 --repl-diskless-sync no --pidfile /tmp/master/redis.pid --rdbcompression no --enable-debug-command yes
370 ./src/redis-cli -p 8080 debug populate 10000 k 102400
371 ./src/redis-server --daemonize yes --logfile /dev/null --dir /tmp/slave --port 8081 --repl-diskless-load disabled --rdbcompression no
372 ./src/redis-cli -p 8080 save > /dev/null
373 VMOUT=$(vmtouch -v /tmp/master/dump.rdb)
374 echo $VMOUT
375 grep -q " 0%" <<< $VMOUT
376 CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}')
377 echo "$CACHE"
378 if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi
379
380 echo "test replication doesn't increase cache"
381 ./src/redis-cli -p 8081 REPLICAOF 127.0.0.1 8080 > /dev/null
382 while [ $(./src/redis-cli -p 8081 info replication | grep "master_link_status:down") ]; do sleep 1; done;
383 sleep 1 # wait for the completion of cache reclaim bio
384 VMOUT=$(vmtouch -v /tmp/master/dump.rdb)
385 echo $VMOUT
386 grep -q " 0%" <<< $VMOUT
387 VMOUT=$(vmtouch -v /tmp/slave/dump.rdb)
388 echo $VMOUT
389 grep -q " 0%" <<< $VMOUT
390 CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}')
391 echo "$CACHE"
392 if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi
393
394 echo "test reboot doesn't increase cache"
395 PID=$(cat /tmp/master/redis.pid)
396 kill -15 $PID
397 while [ -x /proc/${PID} ]; do sleep 1; done
398 ./src/redis-server --daemonize yes --logfile /dev/null --dir /tmp/master --port 8080
399 while [ $(./src/redis-cli -p 8080 info persistence | grep "loading:1") ]; do sleep 1; done;
400 sleep 1 # wait for the completion of cache reclaim bio
401 VMOUT=$(vmtouch -v /tmp/master/dump.rdb)
402 echo $VMOUT
403 grep -q " 0%" <<< $VMOUT
404 CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}')
405 echo "$CACHE"
406 if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi
407
408 test-valgrind-test:
409 runs-on: ubuntu-latest
410 if: |
411 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
412 !contains(github.event.inputs.skipjobs, 'valgrind') && !contains(github.event.inputs.skiptests, 'redis')
413 timeout-minutes: 14400
414 steps:
415 - name: prep
416 if: github.event_name == 'workflow_dispatch'
417 run: |
418 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
419 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
420 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
421 echo "skiptests: ${{github.event.inputs.skiptests}}"
422 echo "test_args: ${{github.event.inputs.test_args}}"
423 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
424 - uses: actions/checkout@v4
425 with:
426 repository: ${{ env.GITHUB_REPOSITORY }}
427 ref: ${{ env.GITHUB_HEAD_REF }}
428 - name: make
429 run: make valgrind REDIS_CFLAGS='-Werror -DREDIS_TEST'
430 - name: testprep
431 run: |
432 sudo apt-get update
433 sudo apt-get install tcl8.6 tclx valgrind g++ -y
434 - name: test
435 if: true && !contains(github.event.inputs.skiptests, 'redis')
436 # Note that valgrind's overhead doesn't pair well with io-threads so we
437 # explicitly disable tests tagged with 'iothreads' - these are tests that
438 # always run with io-threads enabled.
439 run: ./runtest --valgrind --no-latency --verbose --clients 1 --timeout 2400 --tags -iothreads --dump-logs ${{github.event.inputs.test_args}}
440
441 test-valgrind-misc:
442 runs-on: ubuntu-latest
443 if: |
444 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
445 !contains(github.event.inputs.skipjobs, 'valgrind') && !(contains(github.event.inputs.skiptests, 'modules') && contains(github.event.inputs.skiptests, 'unittest'))
446 timeout-minutes: 14400
447 steps:
448 - name: prep
449 if: github.event_name == 'workflow_dispatch'
450 run: |
451 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
452 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
453 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
454 echo "skiptests: ${{github.event.inputs.skiptests}}"
455 echo "test_args: ${{github.event.inputs.test_args}}"
456 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
457 - uses: actions/checkout@v4
458 with:
459 repository: ${{ env.GITHUB_REPOSITORY }}
460 ref: ${{ env.GITHUB_HEAD_REF }}
461 - name: make
462 run: make valgrind REDIS_CFLAGS='-Werror -DREDIS_TEST'
463 - name: testprep
464 run: |
465 sudo apt-get update
466 sudo apt-get install tcl8.6 tclx valgrind -y
467 - name: unittest
468 if: true && !contains(github.event.inputs.skiptests, 'unittest')
469 run: |
470 valgrind --track-origins=yes --suppressions=./src/valgrind.sup --show-reachable=no --show-possibly-lost=no --leak-check=full --log-file=err.txt ./src/redis-server test all --valgrind
471 if grep -q 0x err.txt; then cat err.txt; exit 1; fi
472
473 test-valgrind-no-malloc-usable-size-test:
474 runs-on: ubuntu-latest
475 if: |
476 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
477 !contains(github.event.inputs.skipjobs, 'valgrind') && !contains(github.event.inputs.skiptests, 'redis')
478 timeout-minutes: 14400
479 steps:
480 - name: prep
481 if: github.event_name == 'workflow_dispatch'
482 run: |
483 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
484 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
485 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
486 echo "skiptests: ${{github.event.inputs.skiptests}}"
487 echo "test_args: ${{github.event.inputs.test_args}}"
488 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
489 - uses: actions/checkout@v4
490 with:
491 repository: ${{ env.GITHUB_REPOSITORY }}
492 ref: ${{ env.GITHUB_HEAD_REF }}
493 - name: make
494 run: make valgrind CFLAGS="-DNO_MALLOC_USABLE_SIZE -DREDIS_TEST" REDIS_CFLAGS='-Werror'
495 - name: testprep
496 run: |
497 sudo apt-get update
498 sudo apt-get install tcl8.6 tclx valgrind g++ -y
499 - name: test
500 if: true && !contains(github.event.inputs.skiptests, 'redis')
501 run: ./runtest --valgrind --tags -iothreads --no-latency --verbose --clients 1 --timeout 2400 --dump-logs ${{github.event.inputs.test_args}}
502
503 test-valgrind-no-malloc-usable-size-misc:
504 runs-on: ubuntu-latest
505 if: |
506 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
507 !contains(github.event.inputs.skipjobs, 'valgrind') && !(contains(github.event.inputs.skiptests, 'modules') && contains(github.event.inputs.skiptests, 'unittest'))
508 timeout-minutes: 14400
509 steps:
510 - name: prep
511 if: github.event_name == 'workflow_dispatch'
512 run: |
513 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
514 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
515 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
516 echo "skiptests: ${{github.event.inputs.skiptests}}"
517 echo "test_args: ${{github.event.inputs.test_args}}"
518 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
519 - uses: actions/checkout@v4
520 with:
521 repository: ${{ env.GITHUB_REPOSITORY }}
522 ref: ${{ env.GITHUB_HEAD_REF }}
523 - name: make
524 run: make valgrind CFLAGS="-DNO_MALLOC_USABLE_SIZE -DREDIS_TEST" REDIS_CFLAGS='-Werror'
525 - name: testprep
526 run: |
527 sudo apt-get update
528 sudo apt-get install tcl8.6 tclx valgrind -y
529 - name: unittest
530 if: true && !contains(github.event.inputs.skiptests, 'unittest')
531 run: |
532 valgrind --track-origins=yes --suppressions=./src/valgrind.sup --show-reachable=no --show-possibly-lost=no --leak-check=full --log-file=err.txt ./src/redis-server test all --valgrind
533 if grep -q 0x err.txt; then cat err.txt; exit 1; fi
534
535 test-sanitizer-address:
536 runs-on: ubuntu-latest
537 if: |
538 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
539 !contains(github.event.inputs.skipjobs, 'sanitizer')
540 timeout-minutes: 14400
541 strategy:
542 matrix:
543 compiler: [ gcc, clang ]
544 env:
545 CC: ${{ matrix.compiler }}
546 steps:
547 - name: prep
548 if: github.event_name == 'workflow_dispatch'
549 run: |
550 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
551 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
552 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
553 echo "skiptests: ${{github.event.inputs.skiptests}}"
554 echo "test_args: ${{github.event.inputs.test_args}}"
555 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
556 - uses: actions/checkout@v4
557 with:
558 repository: ${{ env.GITHUB_REPOSITORY }}
559 ref: ${{ env.GITHUB_HEAD_REF }}
560 - name: make
561 run: make SANITIZER=address REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS'
562 - name: testprep
563 run: |
564 sudo apt-get update
565 sudo apt-get install tcl8.6 tclx -y
566 - name: test
567 if: true && !contains(github.event.inputs.skiptests, 'redis')
568 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
569 - name: sentinel tests
570 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
571 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
572 - name: cluster tests
573 if: true && !contains(github.event.inputs.skiptests, 'cluster')
574 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
575 - name: unittest
576 if: true && !contains(github.event.inputs.skiptests, 'unittest')
577 run: ./src/redis-server test all
578
579 test-sanitizer-memory:
580 runs-on: ubuntu-latest
581 if: |
582 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
583 !contains(github.event.inputs.skipjobs, 'sanitizer')
584 timeout-minutes: 14400
585 env:
586 CC: clang # MSan works only with clang
587 steps:
588 - name: prep
589 if: github.event_name == 'workflow_dispatch'
590 run: |
591 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
592 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
593 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
594 echo "skiptests: ${{github.event.inputs.skiptests}}"
595 echo "test_args: ${{github.event.inputs.test_args}}"
596 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
597 - uses: actions/checkout@v4
598 with:
599 repository: ${{ env.GITHUB_REPOSITORY }}
600 ref: ${{ env.GITHUB_HEAD_REF }}
601 - name: make
602 run: make SANITIZER=memory REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS'
603 - name: testprep
604 run: |
605 sudo apt-get update
606 sudo apt-get install tcl8.6 tclx -y
607 - name: test
608 if: true && !contains(github.event.inputs.skiptests, 'redis')
609 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
610 - name: sentinel tests
611 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
612 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
613 - name: cluster tests
614 if: true && !contains(github.event.inputs.skiptests, 'cluster')
615 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
616 - name: unittest
617 if: true && !contains(github.event.inputs.skiptests, 'unittest')
618 run: ./src/redis-server test all
619
620 test-sanitizer-undefined:
621 runs-on: ubuntu-latest
622 if: |
623 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
624 !contains(github.event.inputs.skipjobs, 'sanitizer')
625 timeout-minutes: 14400
626 strategy:
627 matrix:
628 compiler: [ gcc, clang ]
629 env:
630 CC: ${{ matrix.compiler }}
631 steps:
632 - name: prep
633 if: github.event_name == 'workflow_dispatch'
634 run: |
635 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
636 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
637 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
638 echo "skiptests: ${{github.event.inputs.skiptests}}"
639 echo "test_args: ${{github.event.inputs.test_args}}"
640 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
641 - uses: actions/checkout@v4
642 with:
643 repository: ${{ env.GITHUB_REPOSITORY }}
644 ref: ${{ env.GITHUB_HEAD_REF }}
645 - name: make
646 run: make SANITIZER=undefined REDIS_CFLAGS='-DREDIS_TEST -Werror' SKIP_VEC_SETS=yes LUA_DEBUG=yes # we (ab)use this flow to also check Lua C API violations
647 - name: testprep
648 run: |
649 sudo apt-get update
650 sudo apt-get install tcl8.6 tclx -y
651 - name: test
652 if: true && !contains(github.event.inputs.skiptests, 'redis')
653 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
654 - name: sentinel tests
655 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
656 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
657 - name: cluster tests
658 if: true && !contains(github.event.inputs.skiptests, 'cluster')
659 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
660 - name: unittest
661 if: true && !contains(github.event.inputs.skiptests, 'unittest')
662 run: ./src/redis-server test all --accurate
663
664 test-sanitizer-thread:
665 runs-on: ubuntu-latest
666 if: |
667 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
668 !contains(github.event.inputs.skipjobs, 'sanitizer')
669 timeout-minutes: 14400
670 strategy:
671 fail-fast: false # let gcc and clang both run until the end even if one of them fails
672 matrix:
673 compiler: [ gcc, clang ]
674 env:
675 CC: ${{ matrix.compiler }}
676 steps:
677 - name: prep
678 if: github.event_name == 'workflow_dispatch'
679 run: |
680 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
681 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
682 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
683 echo "skiptests: ${{github.event.inputs.skiptests}}"
684 echo "test_args: ${{github.event.inputs.test_args}}"
685 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
686 - uses: actions/checkout@v4
687 with:
688 repository: ${{ env.GITHUB_REPOSITORY }}
689 ref: ${{ env.GITHUB_HEAD_REF }}
690 - name: make
691 # TODO Investigate why jemalloc with clang TSan crash on start;
692 # with gcc TSan, jemalloc works modulo sentinel tests hanging.
693 run: make SANITIZER=thread USE_JEMALLOC=no REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS'
694 - name: testprep
695 run: |
696 sudo apt-get update
697 sudo apt-get install tcl8.6 tclx -y
698 - name: test
699 if: true && !contains(github.event.inputs.skiptests, 'redis')
700 run: ./runtest --tsan --clients 1 --config io-threads 4 --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
701 - name: sentinel tests
702 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
703 run: ./runtest-sentinel --tsan ${{github.event.inputs.cluster_test_args}}
704 - name: cluster tests
705 if: true && !contains(github.event.inputs.skiptests, 'cluster')
706 run: ./runtest-cluster --config io-threads 2 ${{github.event.inputs.cluster_test_args}}
707
708 test-centos-jemalloc:
709 runs-on: ubuntu-latest
710 if: |
711 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
712 !contains(github.event.inputs.skipjobs, 'centos')
713 container: quay.io/centos/centos:stream9
714 timeout-minutes: 14400
715 steps:
716 - name: prep
717 if: github.event_name == 'workflow_dispatch'
718 run: |
719 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
720 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
721 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
722 echo "skiptests: ${{github.event.inputs.skiptests}}"
723 echo "test_args: ${{github.event.inputs.test_args}}"
724 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
725 - uses: actions/checkout@v4
726 with:
727 repository: ${{ env.GITHUB_REPOSITORY }}
728 ref: ${{ env.GITHUB_HEAD_REF }}
729 - name: make
730 run: |
731 dnf -y install which gcc make g++
732 make REDIS_CFLAGS='-Werror'
733 - name: testprep
734 run: |
735 dnf -y install epel-release
736 dnf -y install tcl tcltls procps-ng /usr/bin/kill
737 - name: test
738 if: true && !contains(github.event.inputs.skiptests, 'redis')
739 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
740 - name: sentinel tests
741 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
742 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
743 - name: cluster tests
744 if: true && !contains(github.event.inputs.skiptests, 'cluster')
745 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
746
747 test-centos-tls-module:
748 runs-on: ubuntu-latest
749 if: |
750 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
751 !contains(github.event.inputs.skipjobs, 'tls')
752 container: quay.io/centos/centos:stream9
753 timeout-minutes: 14400
754 steps:
755 - name: prep
756 if: github.event_name == 'workflow_dispatch'
757 run: |
758 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
759 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
760 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
761 echo "skiptests: ${{github.event.inputs.skiptests}}"
762 echo "test_args: ${{github.event.inputs.test_args}}"
763 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
764 - uses: actions/checkout@v4
765 with:
766 repository: ${{ env.GITHUB_REPOSITORY }}
767 ref: ${{ env.GITHUB_HEAD_REF }}
768 - name: make
769 run: |
770 dnf -y install which gcc make openssl-devel openssl g++
771 make BUILD_TLS=module REDIS_CFLAGS='-Werror'
772 - name: testprep
773 run: |
774 dnf -y install epel-release
775 dnf -y install tcl tcltls procps-ng /usr/bin/kill
776 ./utils/gen-test-certs.sh
777 - name: test
778 if: true && !contains(github.event.inputs.skiptests, 'redis')
779 run: |
780 ./runtest --accurate --verbose --dump-logs --tls-module --dump-logs ${{github.event.inputs.test_args}}
781 - name: sentinel tests
782 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
783 run: |
784 ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
785 - name: cluster tests
786 if: true && !contains(github.event.inputs.skiptests, 'cluster')
787 run: |
788 ./runtest-cluster --tls-module ${{github.event.inputs.cluster_test_args}}
789
790 test-centos-tls-module-no-tls:
791 runs-on: ubuntu-latest
792 if: |
793 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
794 !contains(github.event.inputs.skipjobs, 'tls')
795 container: quay.io/centos/centos:stream9
796 timeout-minutes: 14400
797 steps:
798 - name: prep
799 if: github.event_name == 'workflow_dispatch'
800 run: |
801 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
802 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
803 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
804 echo "skiptests: ${{github.event.inputs.skiptests}}"
805 echo "test_args: ${{github.event.inputs.test_args}}"
806 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
807 - uses: actions/checkout@v4
808 with:
809 repository: ${{ env.GITHUB_REPOSITORY }}
810 ref: ${{ env.GITHUB_HEAD_REF }}
811 - name: make
812 run: |
813 dnf -y install which gcc make openssl-devel openssl g++
814 make BUILD_TLS=module REDIS_CFLAGS='-Werror'
815 - name: testprep
816 run: |
817 dnf -y install epel-release
818 dnf -y install tcl tcltls procps-ng /usr/bin/kill
819 ./utils/gen-test-certs.sh
820 - name: test
821 if: true && !contains(github.event.inputs.skiptests, 'redis')
822 run: |
823 ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
824 - name: sentinel tests
825 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
826 run: |
827 ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
828 - name: cluster tests
829 if: true && !contains(github.event.inputs.skiptests, 'cluster')
830 run: |
831 ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
832
833 test-macos-latest:
834 runs-on: macos-latest
835 if: |
836 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
837 !contains(github.event.inputs.skipjobs, 'macos') && !(contains(github.event.inputs.skiptests, 'redis') && contains(github.event.inputs.skiptests, 'modules'))
838 timeout-minutes: 14400
839 steps:
840 - name: prep
841 if: github.event_name == 'workflow_dispatch'
842 run: |
843 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
844 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
845 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
846 echo "skiptests: ${{github.event.inputs.skiptests}}"
847 echo "test_args: ${{github.event.inputs.test_args}}"
848 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
849 - uses: actions/checkout@v4
850 with:
851 repository: ${{ env.GITHUB_REPOSITORY }}
852 ref: ${{ env.GITHUB_HEAD_REF }}
853 - name: make
854 run: make REDIS_CFLAGS='-Werror'
855 - name: test
856 if: true && !contains(github.event.inputs.skiptests, 'redis')
857 run: ./runtest --accurate --verbose --clients 1 --no-latency --dump-logs ${{github.event.inputs.test_args}}
858
859 test-macos-latest-sentinel:
860 runs-on: macos-latest
861 if: |
862 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
863 !contains(github.event.inputs.skipjobs, 'macos') && !contains(github.event.inputs.skiptests, 'sentinel')
864 timeout-minutes: 14400
865 steps:
866 - name: prep
867 if: github.event_name == 'workflow_dispatch'
868 run: |
869 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
870 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
871 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
872 echo "skiptests: ${{github.event.inputs.skiptests}}"
873 echo "test_args: ${{github.event.inputs.test_args}}"
874 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
875 - uses: actions/checkout@v4
876 with:
877 repository: ${{ env.GITHUB_REPOSITORY }}
878 ref: ${{ env.GITHUB_HEAD_REF }}
879 - name: make
880 run: make REDIS_CFLAGS='-Werror'
881 - name: sentinel tests
882 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
883 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
884
885 test-macos-latest-cluster:
886 runs-on: macos-latest
887 if: |
888 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
889 !contains(github.event.inputs.skipjobs, 'macos') && !contains(github.event.inputs.skiptests, 'cluster')
890 timeout-minutes: 14400
891 steps:
892 - name: prep
893 if: github.event_name == 'workflow_dispatch'
894 run: |
895 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
896 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
897 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
898 echo "skiptests: ${{github.event.inputs.skiptests}}"
899 echo "test_args: ${{github.event.inputs.test_args}}"
900 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
901 - uses: actions/checkout@v4
902 with:
903 repository: ${{ env.GITHUB_REPOSITORY }}
904 ref: ${{ env.GITHUB_HEAD_REF }}
905 - name: make
906 run: make REDIS_CFLAGS='-Werror'
907 - name: cluster tests
908 if: true && !contains(github.event.inputs.skiptests, 'cluster')
909 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
910
911 build-macos:
912 strategy:
913 matrix:
914 os: [macos-14, macos-26]
915 runs-on: ${{ matrix.os }}
916 if: |
917 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
918 !contains(github.event.inputs.skipjobs, 'macos')
919 timeout-minutes: 14400
920 steps:
921 - uses: maxim-lobanov/setup-xcode@v1
922 with:
923 xcode-version: latest
924 - name: prep
925 if: github.event_name == 'workflow_dispatch'
926 run: |
927 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
928 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
929 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
930 echo "skiptests: ${{github.event.inputs.skiptests}}"
931 echo "test_args: ${{github.event.inputs.test_args}}"
932 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
933 - uses: actions/checkout@v4
934 with:
935 repository: ${{ env.GITHUB_REPOSITORY }}
936 ref: ${{ env.GITHUB_HEAD_REF }}
937 - name: make
938 run: make REDIS_CFLAGS='-Werror -DREDIS_TEST'
939
940 test-freebsd:
941 runs-on: ubuntu-latest
942 if: |
943 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
944 !contains(github.event.inputs.skipjobs, 'freebsd')
945 timeout-minutes: 14400
946 env:
947 CC: clang
948 CXX: clang++
949 steps:
950 - name: prep
951 if: github.event_name == 'workflow_dispatch'
952 run: |
953 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
954 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
955 - uses: actions/checkout@v4
956 with:
957 repository: ${{ env.GITHUB_REPOSITORY }}
958 ref: ${{ env.GITHUB_HEAD_REF }}
959 - name: test
960 uses: cross-platform-actions/action@v0.30.0
961 with:
962 operating_system: freebsd
963 environment_variables: MAKE
964 version: 13.2
965 shell: bash
966 run: |
967 sudo pkg install -y bash gmake lang/tcl86 lang/tclX gcc
968 gmake
969 ./runtest --single unit/keyspace --single unit/auth --single unit/networking --single unit/protocol
970
971 test-alpine-jemalloc:
972 runs-on: ubuntu-latest
973 if: |
974 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
975 !contains(github.event.inputs.skipjobs, 'alpine')
976 container: alpine:latest
977 steps:
978 - name: prep
979 if: github.event_name == 'workflow_dispatch'
980 run: |
981 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
982 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
983 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
984 echo "skiptests: ${{github.event.inputs.skiptests}}"
985 echo "test_args: ${{github.event.inputs.test_args}}"
986 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
987 - uses: actions/checkout@v4
988 with:
989 repository: ${{ env.GITHUB_REPOSITORY }}
990 ref: ${{ env.GITHUB_HEAD_REF }}
991 - name: make
992 run: |
993 apk add build-base
994 make REDIS_CFLAGS='-Werror'
995 - name: testprep
996 run: apk add tcl procps tclx
997 - name: test
998 if: true && !contains(github.event.inputs.skiptests, 'redis')
999 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
1000 - name: sentinel tests
1001 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
1002 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
1003 - name: cluster tests
1004 if: true && !contains(github.event.inputs.skiptests, 'cluster')
1005 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
1006
1007 test-alpine-libc-malloc:
1008 runs-on: ubuntu-latest
1009 if: |
1010 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
1011 !contains(github.event.inputs.skipjobs, 'alpine')
1012 container: alpine:latest
1013 steps:
1014 - name: prep
1015 if: github.event_name == 'workflow_dispatch'
1016 run: |
1017 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
1018 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
1019 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
1020 echo "skiptests: ${{github.event.inputs.skiptests}}"
1021 echo "test_args: ${{github.event.inputs.test_args}}"
1022 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
1023 - uses: actions/checkout@v4
1024 with:
1025 repository: ${{ env.GITHUB_REPOSITORY }}
1026 ref: ${{ env.GITHUB_HEAD_REF }}
1027 - name: make
1028 run: |
1029 apk add build-base
1030 make REDIS_CFLAGS='-Werror' USE_JEMALLOC=no CFLAGS=-DUSE_MALLOC_USABLE_SIZE
1031 - name: testprep
1032 run: apk add tcl procps tclx
1033 - name: test
1034 if: true && !contains(github.event.inputs.skiptests, 'redis')
1035 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
1036 - name: sentinel tests
1037 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
1038 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
1039 - name: cluster tests
1040 if: true && !contains(github.event.inputs.skiptests, 'cluster')
1041 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
1042
1043 reply-schemas-validator:
1044 runs-on: ubuntu-latest
1045 timeout-minutes: 14400
1046 if: |
1047 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
1048 !contains(github.event.inputs.skipjobs, 'reply-schema')
1049 steps:
1050 - name: prep
1051 if: github.event_name == 'workflow_dispatch'
1052 run: |
1053 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
1054 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
1055 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
1056 echo "skiptests: ${{github.event.inputs.skiptests}}"
1057 echo "test_args: ${{github.event.inputs.test_args}}"
1058 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
1059 - uses: actions/checkout@v4
1060 with:
1061 repository: ${{ env.GITHUB_REPOSITORY }}
1062 ref: ${{ env.GITHUB_HEAD_REF }}
1063 - name: make
1064 run: make REDIS_CFLAGS='-Werror -DLOG_REQ_RES'
1065 - name: testprep
1066 run: sudo apt-get install tcl8.6 tclx
1067 - name: test
1068 if: true && !contains(github.event.inputs.skiptests, 'redis')
1069 run: ./runtest --log-req-res --no-latency --dont-clean --force-resp3 --tags -slow --verbose --dump-logs ${{github.event.inputs.test_args}}
1070 - name: sentinel tests
1071 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
1072 run: ./runtest-sentinel --log-req-res --dont-clean --force-resp3 ${{github.event.inputs.cluster_test_args}}
1073 - name: cluster tests
1074 if: true && !contains(github.event.inputs.skiptests, 'cluster')
1075 run: ./runtest-cluster --log-req-res --dont-clean --force-resp3 ${{github.event.inputs.cluster_test_args}}
1076 - name: Install Python dependencies
1077 uses: py-actions/py-dependency-install@v4
1078 with:
1079 path: "./utils/req-res-validator/requirements.txt"
1080 - name: validator
1081 run: ./utils/req-res-log-validator.py --verbose --fail-missing-reply-schemas ${{ (!contains(github.event.inputs.skiptests, 'redis') && !contains(github.event.inputs.skiptests, 'module') && !contains(github.event.inputs.sentinel, 'redis') && !contains(github.event.inputs.skiptests, 'cluster')) && github.event.inputs.test_args == '' && github.event.inputs.cluster_test_args == '' && '--fail-commands-not-all-hit' || '' }}
1082
1083 test-old-chain-jemalloc:
1084 runs-on: ubuntu-latest
1085 if: |
1086 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
1087 !contains(github.event.inputs.skipjobs, 'oldTC')
1088 container: ubuntu:20.04
1089 timeout-minutes: 14400
1090 steps:
1091 - name: prep
1092 if: github.event_name == 'workflow_dispatch'
1093 run: |
1094 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
1095 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
1096 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
1097 echo "skiptests: ${{github.event.inputs.skiptests}}"
1098 echo "test_args: ${{github.event.inputs.test_args}}"
1099 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
1100 - uses: actions/checkout@v4
1101 with:
1102 repository: ${{ env.GITHUB_REPOSITORY }}
1103 ref: ${{ env.GITHUB_HEAD_REF }}
1104 - name: make
1105 run: |
1106 apt-get update
1107 apt-get install -y gnupg2
1108 echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list
1109 echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
1110 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
1111 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
1112 apt-get update
1113 apt-get install -y make gcc-4.8 g++-4.8
1114 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
1115 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
1116 make CC=gcc REDIS_CFLAGS='-Werror'
1117 - name: testprep
1118 run: apt-get install -y tcl tcltls tclx
1119 - name: test
1120 if: true && !contains(github.event.inputs.skiptests, 'redis')
1121 run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
1122 - name: sentinel tests
1123 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
1124 run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
1125 - name: cluster tests
1126 if: true && !contains(github.event.inputs.skiptests, 'cluster')
1127 run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
1128
1129 test-old-chain-tls-module:
1130 runs-on: ubuntu-latest
1131 if: |
1132 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
1133 !contains(github.event.inputs.skipjobs, 'tls') && !contains(github.event.inputs.skipjobs, 'oldTC')
1134 container: ubuntu:20.04
1135 timeout-minutes: 14400
1136 steps:
1137 - name: prep
1138 if: github.event_name == 'workflow_dispatch'
1139 run: |
1140 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
1141 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
1142 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
1143 echo "skiptests: ${{github.event.inputs.skiptests}}"
1144 echo "test_args: ${{github.event.inputs.test_args}}"
1145 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
1146 - uses: actions/checkout@v4
1147 with:
1148 repository: ${{ env.GITHUB_REPOSITORY }}
1149 ref: ${{ env.GITHUB_HEAD_REF }}
1150 - name: make
1151 run: |
1152 apt-get update
1153 apt-get install -y gnupg2
1154 echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list
1155 echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
1156 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
1157 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
1158 apt-get update
1159 apt-get install -y make gcc-4.8 g++-4.8 openssl libssl-dev
1160 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
1161 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
1162 make CC=gcc CXX=g++ BUILD_TLS=module REDIS_CFLAGS='-Werror'
1163 - name: testprep
1164 run: |
1165 apt-get install -y tcl tcltls tclx
1166 ./utils/gen-test-certs.sh
1167 - name: test
1168 if: true && !contains(github.event.inputs.skiptests, 'redis')
1169 run: |
1170 ./runtest --accurate --verbose --dump-logs --tls-module --dump-logs ${{github.event.inputs.test_args}}
1171 - name: sentinel tests
1172 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
1173 run: |
1174 ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
1175 - name: cluster tests
1176 if: true && !contains(github.event.inputs.skiptests, 'cluster')
1177 run: |
1178 ./runtest-cluster --tls-module ${{github.event.inputs.cluster_test_args}}
1179
1180 test-old-chain-tls-module-no-tls:
1181 runs-on: ubuntu-latest
1182 if: |
1183 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
1184 !contains(github.event.inputs.skipjobs, 'tls') && !contains(github.event.inputs.skipjobs, 'oldTC')
1185 container: ubuntu:20.04
1186 timeout-minutes: 14400
1187 steps:
1188 - name: prep
1189 if: github.event_name == 'workflow_dispatch'
1190 run: |
1191 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
1192 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
1193 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
1194 echo "skiptests: ${{github.event.inputs.skiptests}}"
1195 echo "test_args: ${{github.event.inputs.test_args}}"
1196 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
1197 - uses: actions/checkout@v4
1198 with:
1199 repository: ${{ env.GITHUB_REPOSITORY }}
1200 ref: ${{ env.GITHUB_HEAD_REF }}
1201 - name: make
1202 run: |
1203 apt-get update
1204 apt-get install -y gnupg2
1205 echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list
1206 echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
1207 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
1208 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
1209 apt-get update
1210 apt-get install -y make gcc-4.8 g++-4.8 openssl libssl-dev
1211 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
1212 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
1213 make BUILD_TLS=module CC=gcc REDIS_CFLAGS='-Werror'
1214 - name: testprep
1215 run: |
1216 apt-get install -y tcl tcltls tclx
1217 ./utils/gen-test-certs.sh
1218 - name: test
1219 if: true && !contains(github.event.inputs.skiptests, 'redis')
1220 run: |
1221 ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
1222 - name: sentinel tests
1223 if: true && !contains(github.event.inputs.skiptests, 'sentinel')
1224 run: |
1225 ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
1226 - name: cluster tests
1227 if: true && !contains(github.event.inputs.skiptests, 'cluster')
1228 run: |
1229 ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
1230
1231 test-sanitizer-force-defrag:
1232 runs-on: ubuntu-latest
1233 if: |
1234 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
1235 !contains(github.event.inputs.skipjobs, 'defrag')
1236 timeout-minutes: 14400
1237 steps:
1238 - name: prep
1239 if: github.event_name == 'workflow_dispatch'
1240 run: |
1241 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
1242 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
1243 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
1244 echo "skiptests: ${{github.event.inputs.skiptests}}"
1245 echo "test_args: ${{github.event.inputs.test_args}}"
1246 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
1247 - uses: actions/checkout@v4
1248 with:
1249 repository: ${{ env.GITHUB_REPOSITORY }}
1250 ref: ${{ env.GITHUB_HEAD_REF }}
1251 - name: make
1252 run: make SANITIZER=address DEBUG_DEFRAG=force REDIS_CFLAGS='-Werror'
1253 - name: testprep
1254 run: sudo apt-get install tcl8.6 tclx
1255 - name: test
1256 if: true && !contains(github.event.inputs.skiptests, 'redis')
1257 run: ./runtest --debug-defrag --verbose --clients 1 ${{github.event.inputs.test_args}}
1258
1259 test-vectorset:
1260 runs-on: ubuntu-latest
1261 if: |
1262 (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
1263 !contains(github.event.inputs.skipjobs, 'vectorset')
1264 timeout-minutes: 14400
1265 steps:
1266 - name: prep
1267 if: github.event_name == 'workflow_dispatch'
1268 run: |
1269 echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
1270 echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
1271 echo "skipjobs: ${{github.event.inputs.skipjobs}}"
1272 echo "skiptests: ${{github.event.inputs.skiptests}}"
1273 echo "test_args: ${{github.event.inputs.test_args}}"
1274 echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
1275 - uses: actions/checkout@v4
1276 with:
1277 repository: ${{ env.GITHUB_REPOSITORY }}
1278 ref: ${{ env.GITHUB_HEAD_REF }}
1279 - name: make
1280 run: make REDIS_CFLAGS='-Werror -DREDIS_TEST'
1281 - name: testprep
1282 run: |
1283 sudo apt-get install tcl8.6 tclx
1284 sudo pip install redis
1285 - name: test
1286 if: true && !contains(github.event.inputs.skiptests, 'redis')
1287 run: ./runtest --accurate --verbose --dump-logs --single vectorset/vectorset ${{github.event.inputs.test_args}}
diff --git a/examples/redis-unstable/.github/workflows/external.yml b/examples/redis-unstable/.github/workflows/external.yml
deleted file mode 100644
index 73c40b0..0000000
--- a/examples/redis-unstable/.github/workflows/external.yml
+++ /dev/null
@@ -1,85 +0,0 @@
1name: External Server Tests
2
3on:
4 pull_request:
5 push:
6 schedule:
7 - cron: '0 0 * * *'
8
9jobs:
10 test-external-standalone:
11 runs-on: ubuntu-latest
12 if: github.event_name != 'schedule' || github.repository == 'redis/redis'
13 timeout-minutes: 14400
14 steps:
15 - uses: actions/checkout@v4
16 - name: Build
17 run: make REDIS_CFLAGS=-Werror
18 - name: Start redis-server
19 run: |
20 ./src/redis-server --daemonize yes --save "" --logfile external-redis.log \
21 --enable-protected-configs yes --enable-debug-command yes --enable-module-command yes
22 - name: Run external test
23 run: |
24 ./runtest \
25 --host 127.0.0.1 --port 6379 \
26 --verbose \
27 --tags -slow
28 - name: Archive redis log
29 if: ${{ failure() }}
30 uses: actions/upload-artifact@v4
31 with:
32 name: test-external-redis-log
33 path: external-redis.log
34
35 test-external-cluster:
36 runs-on: ubuntu-latest
37 if: github.event_name != 'schedule' || github.repository == 'redis/redis'
38 timeout-minutes: 14400
39 steps:
40 - uses: actions/checkout@v4
41 - name: Build
42 run: make REDIS_CFLAGS=-Werror
43 - name: Start redis-server
44 run: |
45 ./src/redis-server --cluster-enabled yes --daemonize yes --save "" --logfile external-redis-cluster.log \
46 --enable-protected-configs yes --enable-debug-command yes --enable-module-command yes
47 - name: Create a single node cluster
48 run: ./src/redis-cli cluster addslots $(for slot in {0..16383}; do echo $slot; done); sleep 5
49 - name: Run external test
50 run: |
51 ./runtest \
52 --host 127.0.0.1 --port 6379 \
53 --verbose \
54 --cluster-mode \
55 --tags -slow
56 - name: Archive redis log
57 if: ${{ failure() }}
58 uses: actions/upload-artifact@v4
59 with:
60 name: test-external-cluster-log
61 path: external-redis-cluster.log
62
63 test-external-nodebug:
64 runs-on: ubuntu-latest
65 if: github.event_name != 'schedule' || github.repository == 'redis/redis'
66 timeout-minutes: 14400
67 steps:
68 - uses: actions/checkout@v4
69 - name: Build
70 run: make REDIS_CFLAGS=-Werror
71 - name: Start redis-server
72 run: |
73 ./src/redis-server --daemonize yes --save "" --logfile external-redis-nodebug.log
74 - name: Run external test
75 run: |
76 ./runtest \
77 --host 127.0.0.1 --port 6379 \
78 --verbose \
79 --tags "-slow -needs:debug"
80 - name: Archive redis log
81 if: ${{ failure() }}
82 uses: actions/upload-artifact@v4
83 with:
84 name: test-external-redis-nodebug-log
85 path: external-redis-nodebug.log
diff --git a/examples/redis-unstable/.github/workflows/redis_docs_sync.yaml b/examples/redis-unstable/.github/workflows/redis_docs_sync.yaml
deleted file mode 100644
index 508b883..0000000
--- a/examples/redis-unstable/.github/workflows/redis_docs_sync.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
1name: redis_docs_sync
2
3on:
4 release:
5 types: [published]
6
7jobs:
8 redis_docs_sync:
9 if: github.repository == 'redis/redis'
10 runs-on: ubuntu-latest
11 steps:
12 - name: Generate a token
13 id: generate-token
14 uses: actions/create-github-app-token@v1
15 with:
16 app-id: ${{ secrets.DOCS_APP_ID }}
17 private-key: ${{ secrets.DOCS_APP_PRIVATE_KEY }}
18
19 - name: Invoke workflow on redis/docs
20 env:
21 GH_TOKEN: ${{ steps.generate-token.outputs.token }}
22 RELEASE_NAME: ${{ github.event.release.tag_name }}
23 run: |
24 LATEST_RELEASE=$(
25 curl -Ls \
26 -H "Accept: application/vnd.github+json" \
27 -H "Authorization: Bearer ${GH_TOKEN}" \
28 -H "X-GitHub-Api-Version: 2022-11-28" \
29 https://api.github.com/repos/redis/redis/releases/latest \
30 | jq -r '.tag_name'
31 )
32
33 if [[ "${LATEST_RELEASE}" == "${RELEASE_NAME}" ]]; then
34 gh workflow run -R redis/docs redis_docs_sync.yaml -f release="${RELEASE_NAME}"
35 fi
diff --git a/examples/redis-unstable/.github/workflows/reply-schemas-linter.yml b/examples/redis-unstable/.github/workflows/reply-schemas-linter.yml
deleted file mode 100644
index a57a97a..0000000
--- a/examples/redis-unstable/.github/workflows/reply-schemas-linter.yml
+++ /dev/null
@@ -1,22 +0,0 @@
1name: Reply-schemas linter
2
3on:
4 push:
5 paths:
6 - 'src/commands/*.json'
7 pull_request:
8 paths:
9 - 'src/commands/*.json'
10
11jobs:
12 reply-schemas-linter:
13 runs-on: ubuntu-latest
14 steps:
15 - uses: actions/checkout@v4
16 - name: Setup nodejs
17 uses: actions/setup-node@v4
18 - name: Install packages
19 run: npm install ajv
20 - name: linter
21 run: node ./utils/reply_schema_linter.js
22
diff --git a/examples/redis-unstable/.github/workflows/spell-check.yml b/examples/redis-unstable/.github/workflows/spell-check.yml
deleted file mode 100644
index 2f9cf9c..0000000
--- a/examples/redis-unstable/.github/workflows/spell-check.yml
+++ /dev/null
@@ -1,32 +0,0 @@
1# A CI action that using codespell to check spell.
2# .github/.codespellrc is a config file.
3# .github/wordlist.txt is a list of words that will ignore word checks.
4# More details please check the following link:
5# https://github.com/codespell-project/codespell
6name: Spellcheck
7
8on:
9 push:
10 pull_request:
11
12jobs:
13 build:
14 name: Spellcheck
15 runs-on: ubuntu-latest
16
17 steps:
18 - name: Checkout repository
19 uses: actions/checkout@v4
20
21 - name: pip cache
22 uses: actions/cache@v4
23 with:
24 path: ~/.cache/pip
25 key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
26 restore-keys: ${{ runner.os }}-pip-
27
28 - name: Install prerequisites
29 run: sudo pip install -r ./.codespell/requirements.txt
30
31 - name: Spell check
32 run: codespell --config=./.codespell/.codespellrc