Skip to content

CI

CI #682

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- "master"
schedule:
- cron: "42 3 * * *"
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
name: PHP ${{ matrix.php }} ZTS ${{ matrix.zts }} OPcache ${{ matrix.opcache }}
# The type of runner that the job will run on
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
php:
- 7.3.26
- 7.4.14
- 8.0.1
- 8.1snapshot
- 8.2snapshot
zts: [on, off]
opcache: [on, off]
steps:
- uses: actions/checkout@v2
- name: Restore PHP build cache
id: php-build-cache
uses: actions/cache@v2
with:
path: ${{ github.workspace }}/php
key: php-build-${{ matrix.php }}-zts-${{ matrix.zts }}
- name: Clone php-build/php-build
uses: actions/checkout@v2
with:
repository: php-build/php-build
path: ${{ github.workspace }}/php-build
- name: Install PHP dependencies
run: ${{ github.workspace }}/php-build/install-dependencies.sh
- name: Compile PHP
if: steps.php-build-cache.outputs.cache-hit != 'true'
run: |
cd ${{ github.workspace }}/php-build
./install-dependencies.sh
PHP_BUILD_ZTS_ENABLE=${{ matrix.zts }} ./bin/php-build ${{ matrix.php }} ${{ github.workspace }}/php
- name: Install extension
run: |
cd ${{ github.workspace }}
${{ github.workspace }}/php/bin/phpize
./configure --with-php-config=${{ github.workspace }}/php/bin/php-config
make -j8 install
echo "extension=ds.so" > ${{ github.workspace }}/php/etc/conf.d/ds.ini
rm ${{ github.workspace }}/php/etc/conf.d/xdebug.ini || true
- name: Prefix PHP to PATH
run: echo "${{ github.workspace }}/php/bin" >> $GITHUB_PATH
- name: Generate OPcache configuration
run: echo "opcache.enable_cli=${{ matrix.opcache }}" > ${{ github.workspace }}/php/etc/conf.d/opcache.ini
- name: Install Composer
run: curl -sS https://getcomposer.org/installer | php
- name: Restore Composer package cache
uses: actions/cache@v2
with:
path: |
~/.cache/composer/files
~/.cache/composer/vcs
key: "composer-v2-cache-${{ matrix.php }}-${{ hashFiles('./composer.json') }}"
restore-keys: |
composer-v2-cache-
- name: Install Composer dependencies
run: php composer.phar install --prefer-dist --no-interaction
- name: Run PHPUnit tests
run: php composer.phar test