name: PHP Composer

on:
  - push
  - pull_request

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        operating-system: [ubuntu-latest, windows-latest, macOS-latest]
        php-versions: ["8.1", "8.2"]

    name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}

    steps:
      - uses: actions/checkout@v3

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

      - name: Install PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}

      - name: Check PHP Version
        run: php -v

      - name: Install dependencies
        run: composer install --prefer-dist --no-progress

      # Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit"
      # Docs: https://getcomposer.org/doc/articles/scripts.md

      - name: Run test suite
        run: vendor/phpunit/phpunit/phpunit --no-configuration tests/integration
