Skip to content

Commit 6b31d80

Browse files
committed
Update tests.yml
1 parent 3fd4d8a commit 6b31d80

1 file changed

Lines changed: 74 additions & 3 deletions

File tree

.github/workflows/tests.yml

Lines changed: 74 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ on:
99
- '**.md'
1010

1111
jobs:
12-
tests:
12+
tests-single-node:
1313
runs-on: ubuntu-latest
14-
1514
services:
1615
memcached:
1716
image: memcached:1.6-alpine
@@ -29,7 +28,7 @@ jobs:
2928
php: [ '8.2', '8.3', '8.4' ]
3029
stability: [ prefer-stable ]
3130

32-
name: PHP ${{ matrix.php }} tests
31+
name: PHP ${{ matrix.php }} (Single-Node Redis)
3332
steps:
3433
- name: Checkout code
3534
uses: actions/checkout@v4
@@ -51,3 +50,75 @@ jobs:
5150
run: composer require predis/predis
5251
- name: Execute tests
5352
run: vendor/bin/phpunit
53+
54+
tests-cluster:
55+
runs-on: ubuntu-latest
56+
services:
57+
memcached:
58+
image: memcached:1.6-alpine
59+
ports:
60+
- 11211:11211
61+
62+
strategy:
63+
fail-fast: true
64+
matrix:
65+
php: [ '8.2', '8.3', '8.4' ]
66+
stability: [ prefer-stable ]
67+
68+
name: PHP ${{ matrix.php }} (Redis Cluster)
69+
steps:
70+
- name: Checkout code
71+
uses: actions/checkout@v4
72+
73+
- name: Install Redis Server for Cluster
74+
run: |
75+
sudo apt-get update
76+
sudo apt-get install -y redis-server
77+
78+
- name: Start 3-Node Redis Cluster
79+
run: |
80+
echo "Starting 3-node Redis cluster on ports 7000-7002..."
81+
BASE_PORT=7000
82+
NODE_COUNT=3
83+
node_addresses=""
84+
for i in $(seq 0 $((NODE_COUNT - 1))); do
85+
port=$((BASE_PORT + i))
86+
mkdir -p ./redis-cluster/node-$port
87+
node_addresses+=" 127.0.0.1:$port"
88+
cat > ./redis-cluster/node-$port/redis.conf <<EOF
89+
port $port
90+
cluster-enabled yes
91+
cluster-config-file nodes.conf
92+
cluster-node-timeout 5000
93+
appendonly no
94+
daemonize yes
95+
bind 127.0.0.1
96+
logfile "$(pwd)/redis-cluster/node-$port/redis.log"
97+
dir "$(pwd)/redis-cluster/node-$port"
98+
EOF
99+
redis-server ./redis-cluster/node-$port/redis.conf
100+
done
101+
sleep 3
102+
echo "yes" | redis-cli --cluster create $node_addresses --cluster-replicas 0
103+
echo "Redis cluster is up and running."
104+
105+
- name: Setup PHP
106+
uses: shivammathur/setup-php@v2
107+
with:
108+
php-version: ${{ matrix.php }}
109+
extensions: apcu, redis
110+
ini-values: apc.enable_cli=1
111+
coverage: none
112+
env:
113+
REDIS_CONFIGURE_OPTS: --enable-redis --enable-redis-igbinary --enable-redis-msgpack --enable-redis-lzf --with-liblzf --enable-redis-zstd --with-libzstd --enable-redis-lz4 --with-liblz4
114+
REDIS_LIBS: liblz4-dev, liblzf-dev, libzstd-dev
115+
116+
- name: Install dependencies
117+
run: composer update --prefer-dist --no-interaction --no-progress
118+
- name: Install Predis
119+
run: composer require predis/predis
120+
121+
- name: Execute cluster tests
122+
env:
123+
PCA_REDIS_0_NODES: '["127.0.0.1:7000","127.0.0.1:7001","127.0.0.1:7002"]'
124+
run: vendor/bin/phpunit

0 commit comments

Comments
 (0)