name: Tests (PHP7+)

on:
    push: ~
    pull_request: ~

jobs:
    phpcs:
        name: PHPCS
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@v2

            - uses: shivammathur/setup-php@v2
              with:
                  php-version: 7.0
                  extensions: curl, mbstring
                  coverage: none
                  tools: composer:v2, cs2pr

            - run: composer update --no-progress
            - run: vendor/bin/phpcs -q --report=checkstyle | cs2pr

    phpunit:
        name: PHPUnit on ${{ matrix.php }} ${{ matrix.composer-flags }}
        runs-on: ubuntu-latest
        strategy:
            matrix:
                php: ['7.0', '7.1', '7.2', '7.3', '7.4']

        steps:
            - uses: actions/checkout@v2

            - uses: shivammathur/setup-php@v2
              with:
                  php-version: ${{ matrix.php }}
                  extensions: curl, mbstring
                  coverage: pcov
                  tools: composer:v2

            - run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"

            - run: composer update --no-progress ${{ matrix.composer-flags }}

            - run: vendor/bin/phpunit --no-coverage
              if: ${{ !matrix.coverage }}
