Skip to content

Commit 0737828

Browse files
committed
Add redis-cluster CI job
1 parent dfd1413 commit 0737828

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

.github/workflows/tests.yml

+94
Original file line numberDiff line numberDiff line change
@@ -225,3 +225,97 @@ jobs:
225225
run: vendor/bin/pest
226226
env:
227227
DB_CONNECTION: sqlite
228+
229+
redis-cluster:
230+
runs-on: ubuntu-22.04
231+
232+
services:
233+
redis-node-0:
234+
image: bitnami/redis-cluster
235+
env:
236+
ALLOW_EMPTY_PASSWORD: yes
237+
REDIS_NODES: redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
238+
239+
redis-node-1:
240+
image: bitnami/redis-cluster
241+
env:
242+
ALLOW_EMPTY_PASSWORD: yes
243+
REDIS_NODES: redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
244+
245+
redis-node-2:
246+
image: bitnami/redis-cluster
247+
env:
248+
ALLOW_EMPTY_PASSWORD: yes
249+
REDIS_NODES: redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
250+
251+
redis-node-3:
252+
image: bitnami/redis-cluster
253+
env:
254+
ALLOW_EMPTY_PASSWORD: yes
255+
REDIS_NODES: redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
256+
257+
redis-node-4:
258+
image: bitnami/redis-cluster
259+
env:
260+
ALLOW_EMPTY_PASSWORD: yes
261+
REDIS_NODES: redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
262+
263+
redis-node-5:
264+
image: bitnami/redis-cluster
265+
env:
266+
ALLOW_EMPTY_PASSWORD: yes
267+
REDIS_NODES: redis-node-0 redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5
268+
REDIS_CLUSTER_REPLICAS: 1
269+
REDIS_CLUSTER_CREATOR: yes
270+
ports:
271+
- 6379:6379
272+
273+
mysql:
274+
image: mysql:5.7
275+
env:
276+
MYSQL_RANDOM_ROOT_PASSWORD: yes
277+
MYSQL_DATABASE: pulse
278+
MYSQL_USER: pulse
279+
MYSQL_PASSWORD: password
280+
ports:
281+
- 3306:3306
282+
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
283+
284+
strategy:
285+
fail-fast: true
286+
matrix:
287+
php: [8.3]
288+
laravel: [11]
289+
stability: [prefer-stable]
290+
291+
name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - Stability ${{ matrix.stability }} - Redis Cluster (with MySQL 5.7)
292+
293+
steps:
294+
- name: Checkout code
295+
uses: actions/checkout@v4
296+
297+
- name: Setup PHP
298+
uses: shivammathur/setup-php@v2
299+
with:
300+
php-version: ${{ matrix.php }}
301+
extensions: dom, curl, libxml, mbstring, redis, pcntl, zip
302+
ini-values: error_reporting=E_ALL
303+
tools: composer:v2
304+
coverage: none
305+
306+
- name: Install redis-cli
307+
run: sudo apt-get install -qq redis-tools
308+
309+
- name: Install dependencies
310+
run: |
311+
composer update --prefer-dist --no-interaction --no-progress --${{ matrix.stability }}
312+
313+
- name: Execute tests
314+
run: vendor/bin/pest
315+
env:
316+
DB_CONNECTION: mysql
317+
DB_DATABASE: pulse
318+
DB_USERNAME: pulse
319+
DB_PASSWORD: password
320+
DB_COLLATION: utf8mb4_unicode_ci
321+
PULSE_REDIS_CONNECTION: cluster-test

tests/TestCase.php

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ protected function defineEnvironment($app): void
2525
{
2626
tap($app['config'], function (Repository $config) {
2727
$config->set('queue.failed.driver', 'null');
28+
29+
$config->set('database.redis.clusters.cluster-test.0', $config->get('database.redis.default'));
2830
});
2931
}
3032
}

0 commit comments

Comments
 (0)