name: CI

on:
    pull_request:
    push:
        branches: [main]

jobs:
    test:
        name: 'Test ${{ matrix.deps }} on PHP ${{ matrix.php }}'
        runs-on: ubuntu-latest

        strategy:
            fail-fast: false
            matrix:
                php: ['7.2.5', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
                include:
                    - php: '7.4'
                      deps: lowest
                      deprecations: max[self]=0
                    - php: '8.4'
                      deps: highest

        steps:
            - name: Checkout code
              uses: actions/checkout@v2

            - name: Setup PHP
              uses: shivammathur/setup-php@v2
              with:
                  php-version: '${{ matrix.php }}'
                  coverage: none

            - name: Configure composer
              if: "${{ matrix.deps == 'highest' }}"
              run: composer config minimum-stability dev

            - name: Composer install
              uses: ramsey/composer-install@v1
              with:
                  dependency-versions: '${{ matrix.deps }}'

            - name: Install PHPUnit
              run: vendor/bin/simple-phpunit install

            - name: Run tests
              run: vendor/bin/simple-phpunit
              env:
                  SYMFONY_DEPRECATIONS_HELPER: '${{ matrix.deprecations }}'

    cs:
        name: 'Code Style'
        runs-on: ubuntu-latest

        steps:
            - name: Checkout code
              uses: actions/checkout@v2
            - name: PHP-CS-Fixer
              uses: docker://oskarstark/php-cs-fixer-ga:3.11.0
              with:
                  args: --diff --dry-run
