7474 fail-fast : false
7575 matrix :
7676 php : ['7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3']
77+ server : ['redis-server', 'keydb-server']
78+
7779 steps :
7880 - name : Checkout
7981 uses : actions/checkout@v4
@@ -86,42 +88,88 @@ jobs:
8688 extensions : json, igbinary, msgpack, :redis
8789 coverage : none
8890 tools : none
89- - name : Install dependencies
91+ - name : Install system dependencies
92+ run : |
93+ sudo apt-get update
94+ sudo apt-get install valgrind libzstd-dev liblz4-dev
95+ - name : Install Redis
96+ env :
97+ REDIS_PPA_URI : " packages.redis.io/deb"
98+ REDIS_PPA_KEY : " packages.redis.io/gpg"
9099 run : |
91- curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
92- echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
100+ echo "deb https://$REDIS_PPA_URI $(lsb_release -cs) main" | \
101+ sudo tee /etc/apt/sources.list.d/redis.list
102+ curl -fsSL "https://$REDIS_PPA_KEY" | \
103+ sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/redis.gpg
93104 sudo apt-get update
94- sudo apt --fix-broken install
95- sudo apt-get install redis valgrind libzstd-dev liblz4-dev
105+ sudo apt-get install redis
106+
107+ - name : Install KeyDB
108+ env :
109+ KEYDB_PPA_URI : " download.keydb.dev/open-source-dist"
110+ KEYDB_PPA_KEY : " download.keydb.dev/open-source-dist/keyring.gpg"
111+ run : |
112+ echo "deb https://$KEYDB_PPA_URI $(lsb_release -sc) main" | \
113+ sudo tee /etc/apt/sources.list.d/keydb.list
114+ sudo wget -O /etc/apt/trusted.gpg.d/keydb.gpg "https://$KEYDB_PPA_KEY"
115+ sudo apt-get update
116+ sudo apt-get install keydb
96117 - name : Build phpredis
97118 run : |
98119 phpize
99- ./configure --enable-redis-lzf --enable-redis-zstd --enable-redis-igbinary --enable-redis-msgpack --enable-redis-lz4 --with-liblz4
120+ ./configure \
121+ --enable-redis-lzf \
122+ --enable-redis-zstd \
123+ --enable-redis-igbinary \
124+ --enable-redis-msgpack \
125+ --enable-redis-lz4 \
126+ --with-liblz4
100127 sudo make -j"$(nproc)" install
128+
101129 echo 'extension = redis.so' | sudo tee -a "$(php --ini | grep 'Scan for additional .ini files' | awk '{print $7}')"/90-redis.ini
102130 - name : Start redis
103131 run : |
104132 redis-cli SHUTDOWN NOSAVE
105133 for PORT in $(seq 6379 6382) $(seq 32767 32769); do
106- redis-server --port "$PORT" --daemonize yes --aclfile tests/users.acl --acl-pubsub-default allchannels
134+ ${{ matrix.server }} \
135+ --port "$PORT" \
136+ --daemonize yes \
137+ --aclfile tests/users.acl \
138+ --acl-pubsub-default allchannels
107139 done
108- redis-server --port 0 --unixsocket /tmp/redis.sock --daemonize yes --aclfile tests/users.acl --acl-pubsub-default allchannels
140+ ${{ matrix.server }} \
141+ --port 0 \
142+ --unixsocket /tmp/redis.sock \
143+ --daemonize yes \
144+ --aclfile tests/users.acl \
145+ --acl-pubsub-default allchannels
109146 - name : Start redis cluster
110147 run : |
111148 mkdir -p tests/nodes
112149 echo -n > tests/nodes/nodemap
113150 for PORT in $(seq 7000 7005); do
114- redis-server --port "$PORT" --cluster-enabled yes --cluster-config-file "$PORT".conf --daemonize yes --aclfile tests/users.acl --acl-pubsub-default allchannels
151+ ${{ matrix.server }} \
152+ --port "$PORT" \
153+ --cluster-enabled yes \
154+ --cluster-config-file "$PORT".conf \
155+ --daemonize yes \
156+ --aclfile tests/users.acl \
157+ --acl-pubsub-default allchannels
115158 echo 127.0.0.1:"$PORT" >> tests/nodes/nodemap
116159 done
117- echo yes | redis-cli --cluster create $(seq -f 127.0.0.1:%g 7000 7005) --cluster-replicas 1 --user phpredis -a phpredis
160+ echo yes | redis-cli --cluster create $(seq -f 127.0.0.1:%g 7000 7005) \
161+ --cluster-replicas 1 --user phpredis -a phpredis
118162 - name : Start redis sentinel
119163 run : |
120164 wget raw.githubusercontent.com/redis/redis/7.0/sentinel.conf
121165 for PORT in $(seq 26379 26380); do
122166 cp sentinel.conf "$PORT.conf"
123167 sed -i '/^sentinel/Id' "$PORT.conf"
124- redis-server "$PORT.conf" --port "$PORT" --daemonize yes --sentinel monitor mymaster 127.0.0.1 6379 1 --sentinel auth-pass mymaster phpredis
168+ ${{ matrix.server }} "$PORT.conf" \
169+ --port "$PORT" \
170+ --daemonize yes \
171+ --sentinel monitor mymaster 127.0.0.1 6379 1 \
172+ --sentinel auth-pass mymaster phpredis
125173 done
126174 - name : Run tests
127175 run : |
0 commit comments