name: run-tests on: push: paths: - '**.php' - '.github/workflows/run-tests.yml' - 'phpunit.xml.dist' - 'composer.json' - 'composer.lock' jobs: test: runs-on: ${{ matrix.os }} timeout-minutes: 5 strategy: fail-fast: true matrix: os: [ubuntu-latest] php: [8.3, 8.4] laravel: [11.*, 12.*] stability: [prefer-lowest, prefer-stable] include: - laravel: 11.* php: 8.3 testbench: 9.* carbon: ^2.63 - laravel: 11.* php: 8.4 testbench: 9.* carbon: ^2.63 - laravel: 12.* php: 8.3 testbench: 10.* carbon: ^3.8.4 - laravel: 12.* php: 8.4 testbench: 10.* carbon: ^3.8.4 name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v6 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo coverage: none - name: Setup problem matchers run: | echo "::add-matcher::${{ runner.tool_cache }}/php.json" echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: Remove Larastan if Laravel 12 if: startsWith(matrix.laravel, '12.') run: composer remove larastan/larastan --dev --no-update || true - name: Install dependencies run: | composer require \ "laravel/framework:${{ matrix.laravel }}" \ "orchestra/testbench:${{ matrix.testbench }}" \ "nesbot/carbon:${{ matrix.carbon }}" \ --no-interaction --no-update composer update --${{ matrix.stability }} --prefer-dist --no-interaction - name: List Installed Dependencies run: composer show -D - name: Execute tests run: vendor/bin/pest --ci