name: CI on: push: branches: - main pull_request: branches: - main jobs: static-analysis: name: Static analysis runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.2 tools: phpstan coverage: none - name: PHPStan run: phpstan code-style: name: Code style runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.4 ## Temporary version pin as 1.21.0 is broken tools: pint:1.20.0 coverage: none - name: Pint run: pint --test tests: name: PHP ${{ matrix.php }} Laravel ${{ matrix.laravel }} Prefer ${{ matrix.prefer }} runs-on: ubuntu-latest strategy: matrix: php: [8.2, 8.3, 8.4, 8.5] laravel: ['^11.0', '^12.0', '12.x-dev'] prefer: [prefer-lowest, prefer-stable] steps: - name: checkout code uses: actions/checkout@v3 - name: Get composer cache directory id: composer-cache run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache dependencies uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-php-${{ matrix.php }}-laravel-${{ matrix.laravel }}-prefer-${{ matrix.prefer }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: ${{ runner.os }}-php-${{ matrix.php }}-laravel-{{ matrix.laravel }}-prefer-${{ matrix.prefer}}-composer- - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: none - name: Require Laravel version run: | composer require --no-update \ illuminate/collections:${{ matrix.laravel }} \ illuminate/database:${{ matrix.laravel }} \ illuminate/http:${{ matrix.laravel }} \ illuminate/support:${{ matrix.laravel }} composer require --no-update --dev \ laravel/framework:${{ matrix.laravel }} - name: Support prefer-lowest in PHP 8.2 and Laravel 10 if: ${{ matrix.php == 8.2 && matrix.laravel == '^11.0' && matrix.prefer == 'prefer-lowest' }} run: composer require --no-update nesbot/carbon:^2.62.1 - name: Support prefer-lowest in PHP 8.3 if: ${{ matrix.php == 8.3 && matrix.prefer == 'prefer-lowest' }} run: composer require --no-update nesbot/carbon:^3.0 - name: Support prefer-lowest in PHP 8.4 if: ${{ matrix.php == 8.4 && matrix.prefer == 'prefer-lowest' }} run: composer require --no-update nesbot/carbon:^3.0 - name: Install dependencies run: composer update --${{ matrix.prefer }} - name: Run tests run: ./vendor/bin/phpunit