Merge branch 'release/4.6.1' #1120
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: | |
tests: | |
name: Tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
php: | |
- '7.2' | |
- '7.3' | |
- '7.4' | |
- '8.0' | |
- '8.1' | |
- '8.2' | |
- '8.3' | |
dependencies: | |
- lowest | |
- highest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
coverage: xdebug | |
- name: Setup Problem Matchers for PHPUnit | |
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" | |
- name: Determine Composer cache directory | |
id: composer-cache | |
run: echo "directory=$(composer config cache-dir)" >> "$GITHUB_OUTPUT" | |
shell: bash | |
- name: Cache Composer dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.directory }} | |
key: ${{ runner.os }}-${{ matrix.php }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.dependencies }}-composer- | |
- name: Install highest dependencies | |
run: composer update --no-progress --no-interaction --prefer-dist | |
if: ${{ matrix.dependencies == 'highest' }} | |
- name: Install lowest dependencies | |
run: composer update --no-progress --no-interaction --prefer-dist --prefer-lowest | |
if: ${{ matrix.dependencies == 'lowest' }} | |
- name: Run unit tests | |
run: vendor/bin/phpunit --testsuite unit --coverage-clover=coverage.xml | |
# The reason for running some OOM tests without coverage is that because the coverage information collector can cause another OOM event invalidating the test | |
- name: Run out of memory tests (without coverage) | |
run: vendor/bin/phpunit --testsuite oom --no-coverage | |
- name: Upload code coverage | |
uses: codecov/codecov-action@v3 | |
- name: Check benchmarks | |
run: vendor/bin/phpbench run --revs=1 --iterations=1 | |
if: ${{ matrix.dependencies == 'highest' && matrix.php == '8.2' }} |