name: PHPUnit

on:
  pull_request:
  push:
    branches: [ master ]

permissions:
  actions: read
  checks: read
  contents: read
  deployments: none
  issues: read
  packages: none
  pull-requests: read
  repository-projects: none
  security-events: none
  statuses: none

jobs:
  build:
    name: PHPUnit
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        php-version: ['7.2', '8.5']
        composer-options: ['']
        include:
          - php-version: 7.3
            os: ubuntu-latest
            composer-options: ''
          - php-version: 7.4
            os: ubuntu-latest
            composer-options: ''
          - php-version: 8.0
            os: ubuntu-latest
            composer-options: ''
          - php-version: 8.1
            os: ubuntu-latest
            composer-options: ''
          - php-version: 8.2
            os: ubuntu-latest
            composer-options: ''
          - php-version: 8.3
            os: ubuntu-latest
          - php-version: 8.4
            os: ubuntu-latest
            composer-options: ''
          - php-version: nightly
            os: ubuntu-latest
            composer-options: '--ignore-platform-req=php+'
    steps:
      - uses: actions/checkout@v6
      - name: Install PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-version }}
          extensions: memcached
      - name: "Composer install"
        run: |
          composer install ${{ matrix.composer-options }}
          composer require doctrine/cache ~1.2 ${{ matrix.composer-options }}
      - name: PHPUnit / PHP ${{ matrix.php-version }}
        run: |
          php -v
          ./vendor/bin/phpunit
