mirror of
https://github.com/php-win-ext/phpredis.git
synced 2026-03-24 09:02:07 +01:00
149 lines
5.9 KiB
YAML
149 lines
5.9 KiB
YAML
on: [push, pull_request]
|
|
|
|
jobs:
|
|
ubuntu:
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: ${{ matrix.experimental }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1']
|
|
experimental: [false]
|
|
include:
|
|
- php: '8.2'
|
|
experimental: true
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: Install PHP ${{ matrix.php }}
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
extensions: json, igbinary, msgpack, :redis
|
|
coverage: none
|
|
tools: none
|
|
- name: Install dependencies
|
|
run: |
|
|
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
|
|
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
|
|
sudo apt-get update
|
|
sudo apt-get install redis valgrind libzstd-dev liblz4-dev
|
|
- name: Build phpredis
|
|
run: |
|
|
phpize
|
|
./configure --enable-redis-lzf --enable-redis-zstd --enable-redis-igbinary --enable-redis-msgpack --enable-redis-lz4 --with-liblz4
|
|
sudo make -j$(nproc) install
|
|
echo 'extension = redis.so' | sudo tee -a $(php --ini | grep 'Scan for additional .ini files' | awk '{print $7}')/90-redis.ini
|
|
- name: Start redis
|
|
run: |
|
|
redis-cli SHUTDOWN NOSAVE
|
|
for PORT in $(seq 6379 6382) $(seq 32767 32769); do
|
|
redis-server --port $PORT --daemonize yes --aclfile tests/users.acl --acl-pubsub-default allchannels
|
|
done
|
|
redis-server --port 0 --unixsocket /tmp/redis.sock --daemonize yes --aclfile tests/users.acl --acl-pubsub-default allchannels
|
|
- name: Start redis cluster
|
|
run: |
|
|
mkdir -p tests/nodes
|
|
echo -n > tests/nodes/nodemap
|
|
for PORT in $(seq 7000 7005); do
|
|
redis-server --port $PORT --cluster-enabled yes --cluster-config-file $PORT.conf --daemonize yes --aclfile tests/users.acl --acl-pubsub-default allchannels
|
|
echo 127.0.0.1:$PORT >> tests/nodes/nodemap
|
|
done
|
|
echo yes | redis-cli --cluster create $(seq -f 127.0.0.1:%g 7000 7005) --cluster-replicas 1 --user phpredis -a phpredis
|
|
- name: Start redis sentinel
|
|
run: |
|
|
wget raw.githubusercontent.com/redis/redis/7.0/sentinel.conf
|
|
for PORT in $(seq 26379 26380); do
|
|
cp sentinel.conf $PORT.conf
|
|
sed -i '/^sentinel/Id' $PORT.conf
|
|
redis-server $PORT.conf --port $PORT --daemonize yes --sentinel monitor mymaster 127.0.0.1 6379 1 --sentinel auth-pass mymaster phpredis
|
|
done
|
|
- name: Run tests
|
|
run: |
|
|
php tests/TestRedis.php --class Redis --user phpredis --auth phpredis
|
|
php tests/TestRedis.php --class RedisArray --user phpredis --auth phpredis
|
|
php tests/TestRedis.php --class RedisCluster --user phpredis --auth phpredis
|
|
php tests/TestRedis.php --class RedisSentinel --auth phpredis
|
|
env:
|
|
TEST_PHP_ARGS: -e
|
|
- name: Run tests using valgrind
|
|
continue-on-error: true
|
|
run: |
|
|
valgrind --suppressions=tests/vg.supp --error-exitcode=1 php tests/TestRedis.php --class Redis --user phpredis --auth phpredis
|
|
valgrind --suppressions=tests/vg.supp --error-exitcode=1 php tests/TestRedis.php --class RedisArray --user phpredis --auth phpredis
|
|
valgrind --suppressions=tests/vg.supp --error-exitcode=1 php tests/TestRedis.php --class RedisCluster --user phpredis --auth phpredis
|
|
valgrind --suppressions=tests/vg.supp --error-exitcode=1 php tests/TestRedis.php --class RedisSentinel --auth phpredis
|
|
env:
|
|
TEST_PHP_ARGS: -e
|
|
USE_ZEND_ALLOC: 0
|
|
|
|
macos:
|
|
runs-on: macos-latest
|
|
continue-on-error: ${{ matrix.experimental }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1']
|
|
experimental: [false]
|
|
include:
|
|
- php: '8.2'
|
|
experimental: true
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: Install PHP ${{ matrix.php }}
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
extensions: json, :redis
|
|
coverage: none
|
|
tools: none
|
|
- name: Install dependencies
|
|
run: |
|
|
pecl install igbinary
|
|
pecl install msgpack
|
|
- name: Build phpredis
|
|
run: |
|
|
phpize
|
|
./configure --enable-redis-lzf --enable-redis-zstd --enable-redis-igbinary --enable-redis-msgpack --enable-redis-lz4 --with-liblz4
|
|
sudo make install
|
|
echo 'extension = redis.so' | sudo tee -a $(php --ini | grep 'Scan for additional .ini files' | awk '{print $7}')/90-redis.ini
|
|
|
|
windows:
|
|
runs-on: windows-latest
|
|
continue-on-error: ${{ matrix.experimental }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php: ['7.3', '7.4', '8.0', '8.1']
|
|
experimental: [false]
|
|
include:
|
|
- php: '8.2'
|
|
experimental: true
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: true
|
|
- name: Install PHP ${{ matrix.php }}
|
|
uses: cmb69/setup-php-sdk@v0.6
|
|
id: setup-php-sdk
|
|
with:
|
|
version: ${{ matrix.php }}
|
|
arch: x64
|
|
ts: nts
|
|
- name: Install dependencies
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: x64
|
|
toolset: ${{steps.setup-php-sdk.outputs.toolset}}
|
|
- name: Build phpredis
|
|
run: |
|
|
phpize
|
|
./configure --enable-redis --with-prefix=${{steps.setup-php-sdk.outputs.prefix}}
|
|
nmake
|