name: PHP Code Quality on: pull_request: paths: - '**.php' - 'phpstan.neon' - 'phpunit.xml' # Allow manual triggering workflow_dispatch: # Allow other workflows (e.g. Publish) to invoke this one. workflow_call: env: fail-fast: true permissions: contents: read jobs: phpstan: name: PHPStan runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v5 - name: Set up PHP uses: shivammathur/setup-php@v2 with: php-version: '8.4' coverage: none # PHPUnit is installed to support PHPStan checking tests/ tools: phpstan/phpstan:2.1.31, phpunit/phpunit:9.5.28 - name: Run PHPStan run: phpstan analyze --no-progress phpunit: name: PHPUnit runs-on: ubuntu-latest continue-on-error: ${{ matrix.experimental }} strategy: fail-fast: false matrix: php: ['8.2', '8.3', '8.4'] experimental: [false] include: - php: '8.5' experimental: true steps: - name: Check out code uses: actions/checkout@v5 - name: Set up PHP ${{ matrix.php }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: none tools: phpunit/phpunit:9.5.16 - name: Run PHPUnit run: phpunit --exclude integration --coverage-filter classes --coverage-filter include