name: CI on: [push, pull_request] jobs: tests: runs-on: ubuntu-latest strategy: matrix: php: [8.2, 8.3, 8.4, 8.5] steps: - name: Checkout code uses: actions/checkout@v6 - name: Setup PHP != 8.5 if: ${{ matrix.php != '8.5' }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: none tools: phpstan, phpcs - name: Setup PHP 8.5 if: ${{ matrix.php == '8.5' }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: none tools: phpstan, phpcs # this ini directive seems to be off by default in PHP 8.5 # see https://github.com/php/php-src/issues/20279 # enable it because codeception relies on it. ini-values: register_argc_argv=1 - name: Validate composer.json and composer.lock run: composer validate - name: Install dependencies run: composer install --prefer-dist --no-progress --no-interaction --no-suggest - name: Run PHPStan run: phpstan analyse src - name: Run PHPCS run: phpcs --standard=PSR12 src - name: Run test suite run: php vendor/bin/codecept run