name: phpstan on: push: pull_request: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: phpstan: runs-on: ubuntu-latest strategy: fail-fast: false matrix: php: [8.3, 8.2, 8.1] laravel: [11.*, 10.*] stability: [prefer-stable] include: - laravel: 11.* testbench: 9.* - laravel: 10.* testbench: 8.* exclude: - laravel: 11.* php: 8.1 name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - name: Cache Composer dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.composer/cache/files key: composer-${{ matrix.php }}-${{ matrix.laravel }}-${{ hashFiles('composer.json') }} restore-keys: | composer-${{ matrix.php }}-${{ matrix.laravel }}- composer-${{ matrix.php }}- - name: Cache PHPStan result uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: /tmp/phpstan key: phpstan-${{ matrix.php }}-${{ matrix.laravel }}-${{ github.sha }} restore-keys: | phpstan-${{ matrix.php }}-${{ matrix.laravel }}- - name: Setup PHP uses: shivammathur/setup-php@7c071dfe9dc99bdf297fa79cb49ea005b9fcadbc # 2.37.1 with: php-version: ${{ matrix.php }} extensions: mbstring, pdo, pdo_sqlite coverage: none - name: Install dependencies run: | composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update composer update --${{ matrix.stability }} --prefer-dist --no-interaction - name: Run PHPStan run: ./vendor/bin/phpstan --error-format=github