name: run-tests on: push: pull_request: branches: [ master ] jobs: test: runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: os: [ ubuntu-latest, windows-latest ] php: [ 8.4, 8.3, 8.2 ] laravel: [ '10.*', '11.*', '12.*' ] stability: [ prefer-lowest, prefer-stable ] include: - laravel: 12.* testbench: 10.* carbon: ^3.8.4 - laravel: 11.* testbench: 9.* carbon: ^3.8.4 - laravel: 10.* testbench: 8.* carbon: ^2.63 name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v4 - 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: 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: Execute tests run: vendor/bin/pest phpstan: name: Static analysis (PHPStan) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.2 tools: composer:v2 coverage: none - name: Install composer dependencies run: composer install - name: Run phpstan run: vendor/bin/phpstan analyse php-cs-fixer: name: Code style (php-cs-fixer) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.2 tools: composer:v2 coverage: none - name: Install php-cs-fixer run: composer global require friendsofphp/php-cs-fixer - name: Run php-cs-fixer run: $HOME/.composer/vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php - name: Commit changes from php-cs-fixer uses: EndBug/add-and-commit@v5 with: author_name: "PHP CS Fixer" author_email: "phpcsfixer@example.com" message: Fix code style (php-cs-fixer)