Test against PHP 8.4 #1107
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
- release/** | |
permissions: | |
contents: read | |
# Cancel in progress workflows on pull_requests. | |
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
phpunit: | |
runs-on: ubuntu-latest | |
env: | |
COMPOSER_NO_INTERACTION: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ "8.4", "8.3", "8.2", "8.1" ] | |
packages: | |
# All versions below only support PHP ^8.1 (Laravel requirement) | |
- { laravel: ^10.0, testbench: ^8.0, phpunit: 9.6.* } | |
# All versions below only support PHP ^8.2 (Laravel requirement) | |
- { laravel: ^11.0, testbench: ^9.0, phpunit: 10.5.* } | |
exclude: | |
- php: "8.1" | |
packages: { laravel: ^11.0, testbench: ^9.0, phpunit: 10.5.* } | |
name: phpunit (PHP:${{ matrix.php }}, Laravel:${{ matrix.packages.laravel }}) | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
coverage: pcov | |
tools: composer:v2 | |
- name: Install Composer dependencies | |
run: | | |
# friendsofphp/php-cs-fixer: No need for this package to run phpunit and it conflicts with older Laravel versions | |
composer remove friendsofphp/php-cs-fixer --dev --no-interaction --no-update | |
# Require the correct versions we want to run phpunit for | |
composer require \ | |
"laravel/framework:${{ matrix.packages.laravel }}" \ | |
"illuminate/support:${{ matrix.packages.laravel }}" \ | |
"phpunit/phpunit:${{ matrix.packages.phpunit }}" \ | |
"orchestra/testbench:${{ matrix.packages.testbench }}" \ | |
--no-interaction --no-update | |
# Actually run the composer installation | |
composer install --no-interaction --prefer-dist --no-progress | |
- name: Run phpunit | |
run: vendor/bin/phpunit --coverage-clover=coverage.xml --coverage-filter=src/Sentry | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
phpunit-legacy: | |
runs-on: ubuntu-latest | |
env: | |
COMPOSER_NO_INTERACTION: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ "8.4", "8.3", "8.2", "8.1", "8.0", "7.4", "7.3", "7.2" ] | |
packages: | |
# All versions below should be test on PHP ^7.1 (Sentry SDK requirement) and PHP < 8.0 (PHPUnit requirement) | |
- { laravel: ^6.0, testbench: 4.7.*, phpunit: 8.4.* } | |
- { laravel: ^7.0, testbench: 5.1.*, phpunit: 8.4.* } | |
# All versions below only support PHP ^7.3 (Laravel requirement) | |
- { laravel: ^8.0, testbench: ^6.0, phpunit: 9.3.* } | |
# All versions below only support PHP ^8.0 (Laravel requirement) | |
- { laravel: ^9.0, testbench: ^7.0, phpunit: 9.5.* } | |
exclude: | |
- php: "7.2" | |
packages: { laravel: ^8.0, testbench: ^6.0, phpunit: 9.3.* } | |
- php: "7.2" | |
packages: { laravel: ^9.0, testbench: ^7.0, phpunit: 9.5.* } | |
- php: "7.3" | |
packages: { laravel: ^9.0, testbench: ^7.0, phpunit: 9.5.* } | |
- php: "7.4" | |
packages: { laravel: ^9.0, testbench: ^7.0, phpunit: 9.5.* } | |
- php: "8.0" | |
packages: { laravel: ^6.0, testbench: 4.7.*, phpunit: 8.4.* } | |
- php: "8.0" | |
packages: { laravel: ^7.0, testbench: 5.1.*, phpunit: 8.4.* } | |
- php: "8.1" | |
packages: { laravel: ^6.0, testbench: 4.7.*, phpunit: 8.4.* } | |
- php: "8.1" | |
packages: { laravel: ^7.0, testbench: 5.1.*, phpunit: 8.4.* } | |
- php: "8.2" | |
packages: { laravel: ^6.0, testbench: 4.7.*, phpunit: 8.4.* } | |
- php: "8.2" | |
packages: { laravel: ^7.0, testbench: 5.1.*, phpunit: 8.4.* } | |
- php: "8.3" | |
packages: { laravel: ^6.0, testbench: 4.7.*, phpunit: 8.4.* } | |
- php: "8.3" | |
packages: { laravel: ^7.0, testbench: 5.1.*, phpunit: 8.4.* } | |
- php: "8.3" | |
packages: { laravel: ^8.0, testbench: ^6.0, phpunit: 9.3.* } | |
- php: "8.4" | |
packages: { laravel: ^6.0, testbench: 4.7.*, phpunit: 8.4.* } | |
- php: "8.4" | |
packages: { laravel: ^7.0, testbench: 5.1.*, phpunit: 8.4.* } | |
- php: "8.4" | |
packages: { laravel: ^8.0, testbench: ^6.0, phpunit: 9.3.* } | |
name: phpunit (PHP:${{ matrix.php }}, Laravel:${{ matrix.packages.laravel }}) | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
coverage: pcov | |
tools: composer:v2 | |
- name: Install Composer dependencies | |
run: | | |
# friendsofphp/php-cs-fixer: No need for this package to run phpunit and it conflicts with older Laravel versions | |
# livewire/livewire: Only supported on Laravel 7.0 and above | |
# laravel/folio: Only supported on PHP 8.1 + Laravel 10.0 and above | |
composer remove friendsofphp/php-cs-fixer livewire/livewire laravel/folio --dev --no-interaction --no-update | |
# Require the correct versions we want to run phpunit for | |
composer require \ | |
"laravel/framework:${{ matrix.packages.laravel }}" \ | |
"illuminate/support:${{ matrix.packages.laravel }}" \ | |
"phpunit/phpunit:${{ matrix.packages.phpunit }}" \ | |
"orchestra/testbench:${{ matrix.packages.testbench }}" \ | |
--no-interaction --no-update | |
# Actually run the composer installation | |
composer install --no-interaction --prefer-dist --no-progress | |
- name: Run phpunit | |
run: vendor/bin/phpunit --coverage-clover=coverage.xml --whitelist=src/Sentry | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} |