Skip to content

43 enable php 81 features with backward compatibility #303

43 enable php 81 features with backward compatibility

43 enable php 81 features with backward compatibility #303

Workflow file for this run

# 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 }}"
- name: "Cache Composer"
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
composer-${{ runner.os }}-${{ matrix.php-version }}-${{ matrix.dependencies }}-
composer-${{ runner.os }}-
- 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 }}"
- name: "Cache Composer"
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
composer-${{ runner.os }}-${{ matrix.php-version }}-${{ matrix.dependencies }}-
composer-${{ runner.os }}-
- 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
- name: "Cache Composer"
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: composer-${{ runner.os }}-coverage-${{ hashFiles('**/composer.lock') }}
restore-keys: |
composer-${{ runner.os }}-coverage-
- 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