2021-07-26 19:46:18 +02:00

163 lines
4.4 KiB
YAML

name: CI
on:
push:
branches:
tags:
pull_request:
jobs:
build:
runs-on: ubuntu-18.04
strategy:
matrix:
php: [7.1, 7.2, 7.3, 7.4, 8.0]
env: [
'EXECUTOR= DEPENDENCIES=--prefer-lowest',
'EXECUTOR=coroutine DEPENDENCIES=--prefer-lowest',
'EXECUTOR=',
'EXECUTOR=coroutine',
]
name: PHP ${{ matrix.php }} Test ${{ matrix.env }}
steps:
- uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@2.9.0
with:
php-version: ${{ matrix.php }}
coverage: none
extensions: json, mbstring
- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies
uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Remove dependencies not used in this job for PHP 8 compatibility
run: |
composer remove --dev --no-update phpbench/phpbench
composer remove --dev --no-update phpstan/phpstan
composer remove --dev --no-update phpstan/phpstan-phpunit
composer remove --dev --no-update phpstan/phpstan-strict-rules
composer remove --dev --no-update doctrine/coding-standard
- name: Install Dependencies
run: composer update ${DEPENDENCIES}
- name: Run unit tests
run: |
export $ENV
./vendor/bin/phpunit --group default,ReactPromise
env:
ENV: ${{ matrix.env}}
coding-standard:
runs-on: ubuntu-18.04
name: Coding Standard
steps:
- uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@2.9.0
with:
php-version: 7.1
coverage: none
extensions: json, mbstring
- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies
uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install Dependencies
run: composer install ${DEPENDENCIES}
- name: Coding Standard
run: composer lint
phpstan:
runs-on: ubuntu-18.04
name: PHPStan
steps:
- uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@2.9.0
with:
php-version: 7.1
coverage: none
extensions: json, mbstring
- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies
uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install Dependencies
run: composer install ${DEPENDENCIES}
- name: PHPStan
run: composer stan
coverage:
runs-on: ubuntu-18.04
name: Code Coverage
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.ref }}
- name: Install PHP
uses: shivammathur/setup-php@2.9.0
with:
php-version: 7.2
coverage: pcov
extensions: json, mbstring
- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies
uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install Dependencies
run: composer install ${DEPENDENCIES}
- name: Code coverage
run: |
./vendor/bin/phpunit --coverage-clover /tmp/coverage/clover_executor.xml
EXECUTOR=coroutine ./vendor/bin/phpunit --coverage-clover /tmp/coverage/clover_executor-coroutine.xml
- name: Report to Coveralls
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_RUN_LOCALLY: 1
run: vendor/bin/php-coveralls --verbose