name: CI

on:
  # Run on all pushes and on all pull requests.
  push:
  pull_request:
  # Allow manually triggering the workflow.
  workflow_dispatch:

jobs:
  test:
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        php: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3']

    name: "PHP: ${{ matrix.php }}"

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Install PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          ini-values: error_reporting=-1, display_errors=On, log_errors_max_len=0
          coverage: none
          tools: composer

      # Install dependencies and handle caching in one go.
      # @link https://github.com/marketplace/actions/install-composer-dependencies
      - name: "Install Composer dependencies"
        uses: "ramsey/composer-install@v2"

      - name: Run unit tests
        run: vendor/bin/phpunit
