mirror of
https://github.com/php-win-ext/php-memcached.git
synced 2026-04-29 12:03:24 +02:00
eb39e469d0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
102 lines
3.4 KiB
YAML
102 lines
3.4 KiB
YAML
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']
|
|
experimental: [false]
|
|
include:
|
|
- php: '8.2'
|
|
awesome: true
|
|
experimental: true
|
|
- php: '8.3'
|
|
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.3.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
|