Skip to content

Merge pull request #2 from nowo-tech/dependabot/github_actions/action… #6

Merge pull request #2 from nowo-tech/dependabot/github_actions/action…

Merge pull request #2 from nowo-tech/dependabot/github_actions/action… #6

Workflow file for this run

name: CI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
# REQ-SF-002: matrix must include mandatory Symfony minors 7.4, 8.0, and 8.1 (see BUNDLES_FULL_SPECS_DETAILS.md).
test:
name: PHP ${{ matrix.php }} - Symfony ${{ matrix.symfony }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ['8.2', '8.3', '8.4', '8.5']
symfony: ['6.4', '7.0', '7.4', '8.0', '8.1']
exclude:
- php: '8.2'
symfony: '8.0'
- php: '8.2'
symfony: '8.1'
- php: '8.3'
symfony: '8.0'
- php: '8.3'
symfony: '8.1'
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: json
coverage: pcov
tools: composer:v2
- name: Validate composer.json
run: composer validate --strict
- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache Composer dependencies
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-php-${{ matrix.php }}-symfony-${{ matrix.symfony }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: |
${{ runner.os }}-php-${{ matrix.php }}-symfony-${{ matrix.symfony }}-composer-
${{ runner.os }}-php-${{ matrix.php }}-composer-
- name: Override platform for Symfony 8 (requires PHP 8.4+)
if: startsWith(matrix.symfony, '8.')
run: composer config platform.php 8.4
- name: Install dependencies with Symfony ${{ matrix.symfony }}
run: |
composer require symfony/config:^${{ matrix.symfony }} symfony/dependency-injection:^${{ matrix.symfony }} symfony/http-kernel:^${{ matrix.symfony }} symfony/http-foundation:^${{ matrix.symfony }} symfony/security-core:^${{ matrix.symfony }} --no-interaction --no-update
composer update symfony/* doctrine/* --with-all-dependencies --no-interaction --prefer-dist --no-progress
- name: Run tests
run: composer test
- name: Run tests with coverage (PHP 8.2 + Symfony 7.4 only)
if: matrix.php == '8.2' && matrix.symfony == '7.4'
run: composer test-coverage
code-style:
name: Code Style
runs-on: ubuntu-latest
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
tools: composer:v2, cs2pr
- name: Install dependencies
run: composer install --prefer-dist --no-progress --no-interaction
- name: Fix code style
run: composer cs-fix
- name: Check for changes
id: verify-changed-files
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "changed=false" >> $GITHUB_OUTPUT
fi
- name: Commit changes
if: steps.verify-changed-files.outputs.changed == 'true'
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add -A
git commit -m "Apply PHP CS Fixer fixes [skip ci]"
git push
code-style-check:
name: Code Style Check
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
tools: composer:v2, cs2pr
- name: Install dependencies
run: composer install --prefer-dist --no-progress --no-interaction
- name: Check code style
run: composer cs-check
coverage:
name: Code Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: json
coverage: pcov
tools: composer:v2
- name: Install dependencies (Symfony 7.4)
run: |
composer require symfony/config:^7.4 symfony/dependency-injection:^7.4 symfony/http-kernel:^7.4 symfony/http-foundation:^7.4 symfony/security-core:^7.4 --no-interaction --no-update
composer update symfony/* doctrine/* --with-all-dependencies --no-interaction --prefer-dist --no-progress
- name: Run tests with coverage
run: composer test-coverage
- name: Validate coverage file
run: |
if [ ! -f coverage.xml ]; then
echo "ERROR: coverage.xml was not generated"
exit 1
fi
echo "coverage.xml generated"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v7
with:
files: coverage.xml
fail_ci_if_error: false