| name: Tests
on: [push]
jobs:
  build:
    strategy:
      matrix:
        php: ['8.0', '8.1', '8.2', '8.3', '8.4']
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Setup PHP version
      uses: shivammathur/setup-php@v2
      with:
        php-version: ${{ matrix.php }}
    - name: Validate composer.json and composer.lock
      run: composer validate --strict
    - name: Cache Composer packages
      id: composer-cache
      uses: actions/cache@v3
      with:
        path: vendor
        key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
        restore-keys: |
          ${{ runner.os }}-php-
    - name: Install dependencies
      run: composer install --prefer-dist --no-progress
    - name: Run test suite
      run: composer run-script test
    - name: Upload to Codecov
      uses: codecov/codecov-action@v2
      with:
        token: ${{ secrets.CODE_COV_TOKEN }}
        files: ./build/logs/clover.xml
        verbose: true
 |