.github/workflows/build.yaml
name: Build
on:
pull_request: ~
push: ~
jobs:
phpstan:
runs-on: ubuntu-22.04
name: PHPStan
steps:
- name: Checkout
uses: actions/checkout@v4
- name: PHPStan
uses: docker://oskarstark/phpstan-ga
env:
REQUIRE_DEV: true
with:
args: analyse
cs-fixer:
runs-on: ubuntu-22.04
name: PHP-CS-Fixer
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Fix CS
uses: docker://oskarstark/php-cs-fixer-ga
tests:
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- description: 'Lowest'
php: '8.1'
composer_option: '--prefer-lowest'
- description: 'Symfony 5.4'
php: '8.1'
symfony: 5.4.*
- description: 'Symfony 6.4'
php: '8.2'
symfony: 6.4.*
- description: 'Symfony 7.1'
php: '8.3'
symfony: 7.1.*
name: PHP ${{ matrix.php }} tests (${{ matrix.description }})
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: ${{ matrix.php }}-${{ matrix.symfony }}-${{ matrix.composer_option }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- run: |
sed -ri 's/"symfony\/(.+)": "(.+)"/"symfony\/\1": "'${{ matrix.symfony }}'"/' composer.json;
if: matrix.symfony
- run: composer update --no-interaction --no-progress --ansi ${{ matrix.composer_option }}
- run: vendor/bin/phpunit --coverage-clover=clover.xml
- name: Code Climate Test Reporter
uses: aktions/codeclimate-test-reporter@v1
if: ${{ github.event_name != 'pull_request' && matrix.php == '8.3' }}
with:
codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
command: after-build --coverage-input-type clover
- uses: codecov/codecov-action@v1
with:
files: ./clover.xml