43 enable php 81 features with backward compatibility #304
This file contains hidden or 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
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
composer-validate: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: shivammathur/setup-php@v2 | |
with: | |
coverage: none | |
extensions: mbstring | |
php-version: 8.3 | |
- run: composer validate --strict | |
static-code-analysis: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
php-version: ["8.1", "8.2", "8.3", "8.4"] | |
dependencies: [lowest, highest] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: shivammathur/setup-php@v2 | |
with: | |
coverage: none | |
extensions: mbstring | |
php-version: "${{ matrix.php-version }}" | |
- uses: ramsey/composer-install@v3 | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- run: vendor/bin/phpstan analyse --configuration=phpstan.neon | |
tests: | |
name: "Tests - PHP ${{ matrix.php-version }}, ${{ matrix.dependencies }}" | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
php-version: ["8.1", "8.2", "8.3", "8.4"] | |
dependencies: [lowest, highest] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: shivammathur/setup-php@v2 | |
with: | |
coverage: none | |
extensions: mbstring | |
php-version: "${{ matrix.php-version }}" | |
- uses: ramsey/composer-install@v3 | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- run: vendor/bin/phpunit | |
code-coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: shivammathur/setup-php@v2 | |
with: | |
coverage: pcov | |
extensions: mbstring | |
php-version: 8.3 | |
- uses: ramsey/composer-install@v3 | |
- run: vendor/bin/phpunit --coverage-clover=.build/logs/clover.xml | |
# Not using v4 due to the breaking changes described in https://github.com/codecov/codecov-action/releases/tag/v4.0.0 | |
- uses: codecov/codecov-action@v3 | |
downgraded-build-validate: | |
name: "Downgraded Build Validate (PHP 7.4)" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Setup PHP 8.3 (Rector)" | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.3 | |
coverage: none | |
- uses: ramsey/composer-install@v3 | |
- name: "Downgrade src and tests" | |
run: | | |
vendor/bin/rector process src tests --config build/rector-downgrade-php-74.php --ansi | |
- name: "Prepare downgraded composer.json" | |
run: | | |
cp build/composer-php-74.json composer.json | |
rm -f composer.lock | |
- name: "Setup PHP 7.4" | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 7.4 | |
coverage: none | |
- name: "Install downgraded dependencies" | |
run: composer install --no-interaction --prefer-dist | |
- name: "Validate downgraded composer.json" | |
run: composer validate --no-check-publish | |
- name: "Run PHPUnit on downgraded src" | |
run: vendor/bin/phpunit |