mirror of
https://github.com/php-win-ext/php-memcached.git
synced 2026-03-24 00:52:18 +01:00
Add GitHub Actions build (#492)
travis-ci.org builds have ceased, so this patch adds a GitHub Actions workflow to build and test the extension, as well as a Dependabot configuration file to keep the referenced actions up to date. I've opted to slightly simplify the workflow compared to the Travis build script. For one, I have not included libmemcached protocol support, as most distros do not supply a libmemcached compiled with server protocol support, and previous discussion suggests its usefulness in the context of this extension may be limited.[1] I've also opted to remove multiversion libmemcached testing in favor of using the system libmemcached, as the referenced other versions seem to be old enough for this to hopefully not be a problem. These could conceivably be reintroduced if needed. --- [1] https://github.com/php-memcached-dev/php-memcached/issues/418#issuecomment-449587972
This commit is contained in:
6
.github/dependabot.yml
vendored
Normal file
6
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
84
.github/workflows/build-and-test.yml
vendored
Normal file
84
.github/workflows/build-and-test.yml
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
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']
|
||||
experimental: [false]
|
||||
include:
|
||||
- php: '8.1'
|
||||
experimental: true
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
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 libmemcached-dev memcached libsasl2-dev sasl2-bin zlib1g-dev
|
||||
- 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
|
||||
Reference in New Issue
Block a user