Merge pull request #92 from niels-nijens/add-symfony-7-support #181
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
on: [push, pull_request] | |
name: Continuous Integration | |
jobs: | |
test: | |
name: Tests (Symfony ${{ matrix.symfony-version }} & PHP ${{ matrix.php-version }}) | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-version: ['7.4', '8.0', '8.1', '8.2', '8.3'] | |
symfony-version: ['5.4', '6.0', '6.1', '6.2', '6.3', '6.4', '7.0'] | |
test-options: [''] | |
coverage: [false] | |
include: | |
- php-version: '8.1' | |
symfony-version: '5.4' | |
coverage: true | |
test-options: '-with-coverage' | |
- php-version: '8.1' | |
symfony-version: '5.4' | |
exclude: | |
- php-version: '7.4' | |
symfony-version: '6.0' | |
- php-version: '7.4' | |
symfony-version: '6.1' | |
- php-version: '7.4' | |
symfony-version: '6.2' | |
- php-version: '7.4' | |
symfony-version: '6.3' | |
- php-version: '7.4' | |
symfony-version: '6.4' | |
- php-version: '7.4' | |
symfony-version: '7.0' | |
- php-version: '8.0' | |
symfony-version: '6.1' | |
- php-version: '8.0' | |
symfony-version: '6.2' | |
- php-version: '8.0' | |
symfony-version: '6.3' | |
- php-version: '8.0' | |
symfony-version: '6.4' | |
- php-version: '8.0' | |
symfony-version: '7.0' | |
- php-version: '8.1' | |
symfony-version: '7.0' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
extensions: mbstring, json, xml | |
coverage: pcov | |
- name: Detect dependency cache directory | |
id: composer-cache | |
run: echo "::set-output name=dir::$(composer config cache-files-dir)" | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Install dependencies and switch Symfony components to version ${{ matrix.symfony-version }} | |
run: make switch-symfony version=${{ matrix.symfony-version }} | |
- name: Run PHPUnit | |
run: make test${{ matrix.test-options }} | |
- name: Code Coverage Summary | |
uses: irongut/[email protected] | |
if: ${{ matrix.coverage == true }} | |
with: | |
filename: coverage.cobertura.xml | |
format: markdown | |
badge: true | |
fail_below_min: true | |
hide_branch_rate: true | |
output: both | |
thresholds: '50 95' | |
- name: Save pull request number | |
if: ${{ matrix.coverage == true }} | |
run: | | |
echo ${{ github.event.number }} > pull-request-number | |
- uses: actions/upload-artifact@v3 | |
if: ${{ matrix.coverage == true }} | |
with: | |
name: coverage | |
path: | | |
pull-request-number | |
coverage.txt | |
code-coverage-results.md | |
lockfile-integrity: | |
name: Composer lockfile integrity | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.2' | |
coverage: none | |
- name: Validate composer.json and composer.lock | |
run: make validate-dependencies | |
code-style: | |
name: Code standards | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.2' | |
coverage: none | |
- name: Detect dependency cache directory | |
id: composer-cache | |
run: echo "::set-output name=dir::$(composer config cache-files-dir)" | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Install dependencies | |
run: make install | |
- name: Check code standards | |
run: make code-style-check |