name: Continuous Integration

on: [push, pull_request]

jobs:
  tests:
    name: PHP ${{ matrix.php-version }} + Symfony ${{ matrix.symfony-version }} + ${{ matrix.dependencies }}

    runs-on: ubuntu-latest

    env:
      SYMFONY_DEPRECATIONS_HELPER: max[self]=0
      SYMFONY_REQUIRE: ${{ matrix.symfony-version }}

    strategy:
      matrix:
        php-version:
          - 7.4
          - 8.0
          - 8.1
        symfony-version:
          - 4.4.x
          - 5.4.x
          - 6.0.x
        dependencies:
          - highest
        include:
          - php-version: 7.4
            dependencies: lowest
            symfony-version: 4.4
        exclude:
          - php-version: 7.4
            symfony-version: 6.0.x

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

      - name: Install PHP
        uses: shivammathur/setup-php@v2
        with:
          coverage: pcov
          ini-values: memory_limit=-1, date.timezone=Europe/Paris, session.gc_probability=0
          php-version: ${{ matrix.php-version }}
          tools: composer:v2,flex

      - name: Install Composer dependencies (${{ matrix.dependencies }})
        uses: ramsey/composer-install@v1
        with:
            dependency-versions: ${{ matrix.dependencies }}

      - name: Run tests
        run: vendor/bin/phpunit --coverage-clover coverage.xml

      - name: Send coverage to Codecov
        uses: codecov/codecov-action@v2
        with:
          file: coverage.xml
