Skip to content

Merge pull request #92 from niels-nijens/add-symfony-7-support #181

Merge pull request #92 from niels-nijens/add-symfony-7-support

Merge pull request #92 from niels-nijens/add-symfony-7-support #181

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