name: PHP Composer

on:
  push:
  pull_request:
    branches: [ master ]

jobs:
  phpunit:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        php: [7.2, 7.3, 7.4, 8.0, 8.1]
        os: [ubuntu-latest]
        composer: [v2]
    name: ${{ matrix.php }} - PHPUnit - Composer ${{ matrix.composer }}
    steps:
      - uses: actions/checkout@v2
      - uses: actions/cache@v2
        with:
            path: |
              ~/.composer/cache/files
              ~/.composer/cache/repo
            key: dependencies-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
      - uses: shivammathur/setup-php@v2
        with:
            php-version: ${{ matrix.php }}
            extensions: dom, curl, libxml, mbstring, zip, pdo, mysql, pdo_mysql, bcmath, soap, intl, gd, exif, iconv
            coverage: none
            tools: composer:${{ matrix.composer }}
      - name: Validate composer.json
        run: composer validate
      - name: Install dependencies
        run: composer install --prefer-dist --no-progress --no-suggest
      - name: Run tests
        run: ./vendor/bin/phpunit
