8000 Add KeyDB to CI · phpredis/phpredis@54d62c7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 54d62c7

Browse files
Add KeyDB to CI
See: #2466
1 parent d9c48b7 commit 54d62c7

File tree

1 file changed

+59
-11
lines changed

1 file changed

+59
-11
lines changed

.github/workflows/ci.yml

Lines changed: 59 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ jobs:
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

Comments
 (0)
0