name: Functional Tests

on: [push]

jobs:
  tests:
    runs-on: ${{ matrix.operating-system }}
    strategy:
      matrix:
        operating-system: [ubuntu-latest]
        php-versions: ['7.2', '7.3', '7.4', '8.0']
    name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}

    steps:
      - uses: actions/checkout@v2
        with:
          ref: ${{ github.head_ref }}

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          extensions: json, mbstring, openssl, gmp
          coverage: xdebug

      - name: Validate composer.json and composer.lock
        run: composer validate

      - name: Install dependencies
        run: |
          composer update --no-progress --no-suggest --prefer-dist --optimize-autoloader

      - name: Run tests
        run: vendor/bin/phpunit -c phpunit.xml.dist --group=functional
