name: Tests

on: [push, pull_request]

jobs:
  run:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        php: ['8.1', '8.2', '8.3', '8.4', '8.5']
    name: Testing on PHP ${{ matrix.php }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: mbstring, bcmath, gd
          tools: composer

      - name: Install PHP dependencies
        run: composer install -q

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

      - name: Run phpstan
        run: vendor/bin/phpstan analyze --no-progress src/

      - name: Validate coding standards
        run: vendor/bin/phpcs
