CI: Add PHP 8.3 to the required matrix, add PHP 8.4 to experimental #107
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: [push, pull_request] | |
jobs: | |
build: | |
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', '8.2', '8.3'] | |
experimental: [false] | |
include: | |
- php: '8.2' | |
awesome: true | |
experimental: true | |
- php: '8.4' | |
experimental: true | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install PHP ${{ matrix.php }} | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: none, json, igbinary, msgpack | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install cmake memcached libsasl2-dev sasl2-bin zlib1g-dev | |
- if: ${{ ! matrix.awesome }} | |
name: Install libmemcached-dev (from distro) | |
run: sudo apt-get install libmemcached-dev | |
- if: ${{ matrix.awesome }} | |
name: Install libmemcached-awesome (from source) | |
run: | | |
curl -sL -o libmemcached.tgz https://github.com/awesomized/libmemcached/archive/refs/tags/1.1.4.tar.gz | |
mkdir libmemcached | |
tar --strip-components=1 -xf libmemcached.tgz -C libmemcached | |
mkdir build-libmemcached | |
cd build-libmemcached | |
cmake -D ENABLE_HASH_HSIEH=ON -D ENABLE_SASL=ON ../libmemcached | |
make | |
sudo make install | |
- name: Start memcached daemons | |
run: | | |
export SASL_CONF_PATH="/tmp/sasl2" | |
mkdir "${SASL_CONF_PATH}" | |
export MEMCACHED_SASL_PWDB="${SASL_CONF_PATH}/sasldb2" | |
# Create configuration | |
cat<<EOF > "${SASL_CONF_PATH}/memcached.conf" | |
mech_list: PLAIN | |
plainlog_level: 5 | |
sasldb_path: ${MEMCACHED_SASL_PWDB} | |
EOF | |
echo "test" | /usr/sbin/saslpasswd2 -c memcached -a memcached -f "${MEMCACHED_SASL_PWDB}" | |
# Run normal memcached | |
memcached -d -p 11211 | |
# Run memcached on port 11212 with SASL support | |
memcached -S -d -p 11212 | |
- name: Build extension | |
run: | | |
phpize | |
./configure \ | |
--enable-memcached-protocol=no \ | |
--enable-memcached-sasl \ | |
--enable-memcached-json \ | |
--enable-memcached-msgpack \ | |
--enable-memcached-igbinary | |
make | |
sudo make install | |
- name: Create test configuration | |
run: | | |
cat<<EOF > tests/config.inc.local | |
<?php | |
define ("MEMC_SERVER_HOST", "127.0.0.1"); | |
define ("MEMC_SERVER_PORT", 11211); | |
define ("MEMC_SASL_SERVER_HOST", "127.0.0.1"); | |
define ("MEMC_SASL_SERVER_PORT", 11212); | |
define ('MEMC_SASL_USER', 'memcached'); | |
define ('MEMC_SASL_PASS', 'test'); | |
EOF | |
- name: Run tests | |
run: | | |
export NO_INTERACTION=1 | |
export REPORT_EXIT_STATUS=1 | |
export TEST_PHP_EXECUTABLE=$(which php) | |
# We have one xfail test, we run it separately | |
php run-tests.php --show-diff -d extension=modules/memcached.so ./tests/expire.phpt | |
rm ./tests/expire.phpt | |
# Run normal tests | |
php run-tests.php --show-diff -d extension=modules/memcached.so ./tests/*.phpt |