74 lines
1.8 KiB
YAML
74 lines
1.8 KiB
YAML
name: PHP
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
run:
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
mysql:
|
|
image: mysql:5.7
|
|
ports:
|
|
- 3306:3306
|
|
env:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
|
redis:
|
|
image: redis:6.0
|
|
ports:
|
|
- 6379:6379
|
|
mongo:
|
|
image: mongo:4.2-bionic
|
|
ports:
|
|
- 27017:27017
|
|
memcached:
|
|
image: memcached:1.6
|
|
ports:
|
|
- 11211:11211
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- php: 7.2
|
|
composer: '--prefer-lowest'
|
|
desc: "Lowest versions"
|
|
- php: 7.4
|
|
composer: '--prefer-lowest'
|
|
desc: "Lowest versions"
|
|
- php: 7.2
|
|
- php: 7.3
|
|
- php: 7.4
|
|
coverage: '--coverage-clover /tmp/clover.xml'
|
|
- php: 8.0
|
|
name: PHP ${{ matrix.php }} ${{ matrix.desc }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
coverage: xdebug
|
|
extensions: apcu, mongodb, memcached
|
|
ini-values: apc.enable_cli=1,mysqli.default_host=127.0.0.1,mysqli.default_port=3306,mysqli.default_user=root
|
|
|
|
- name: Validate composer.json and composer.lock
|
|
run: composer validate
|
|
|
|
- name: Install dependencies
|
|
run: composer update --prefer-dist --no-progress ${{ matrix.composer }}
|
|
|
|
- name: Run PHPUnit
|
|
run: vendor/bin/phpunit ${{ matrix.coverage }}
|
|
|
|
- name: Upload coverage to Scrutinizer
|
|
if: ${{ matrix.coverage }}
|
|
run: >
|
|
wget https://scrutinizer-ci.com/ocular.phar -O "/tmp/ocular.phar" &&
|
|
php "/tmp/ocular.phar" code-coverage:upload --format=php-clover /tmp/clover.xml
|