Skip to content

Test against PHP 8.4 #1107

Test against PHP 8.4

Test against PHP 8.4 #1107

Workflow file for this run

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 }}