CI #1208
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
name: "CI" | |
concurrency: | |
group: "ci-${{ github.head_ref || github.run_id }}" | |
cancel-in-progress: true | |
on: | |
merge_group: | |
pull_request: | |
jobs: | |
ci: | |
name: "Execute (PHP ${{ matrix.php-version }} with ${{ matrix.dependencies }} deps, composer v${{ matrix.composer-version}}.x, symfony v${{ matrix.symfony-version }})" | |
runs-on: "ubuntu-24.04" | |
strategy: | |
matrix: | |
dependencies: | |
- "lowest" | |
- "locked" | |
- "highest" | |
php-version: | |
- "8.2" | |
- "8.3" | |
composer-version: | |
- "2.4" | |
- "2.5" | |
- "2.6" | |
- "2.7" | |
symfony-version: | |
- "5.4.*" | |
- "6.4.*" | |
- "7.0.*" | |
- "7.1.*" | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
with: | |
show-progress: false | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "pcov" | |
php-version: "${{ matrix.php-version }}" | |
ini-values: memory_limit=-1 | |
tools: "composer:${{ matrix.composer-version }}" | |
- name: Setup Symfony Flex | |
if: ${{ matrix.dependencies != 'locked' }} | |
shell: bash | |
run: | | |
composer global config --no-plugins allow-plugins.symfony/flex true | |
composer global require --no-progress --no-scripts --no-plugins symfony/flex | |
- name: Install Composer dependencies | |
uses: ramsey/composer-install@v3 | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
env: | |
SYMFONY_REQUIRE: "${{ matrix.symfony-version }}" | |
- name: Remove Symfony Flex | |
if: ${{ matrix.dependencies != 'locked' }} | |
shell: bash | |
run: | | |
composer global config --no-plugins allow-plugins.symfony/flex false | |
composer global remove symfony/flex | |
- name: "Validate Composer dependencies" | |
run: "composer validate" | |
- name: "Check composer.json normalization" | |
run: "composer normalize --dry-run" | |
- name: "Run security check" | |
run: "composer security:check" | |
- name: "Check licenses (composer installed.json provider)" | |
run: "composer license:check -- --provider-id=json -v" | |
- name: "Check licenses (composer licenses provider)" | |
run: "composer license:check -- --provider-id=licenses -v" | |
- name: "Run coding style" | |
if: ${{ matrix.dependencies == 'locked' && matrix.php-version == '8.2' }} | |
run: "composer code-style:check" | |
- name: "Run PHPStan" | |
if: ${{ matrix.dependencies == 'locked' }} | |
run: "composer phpstan" | |
- name: "Run Rector" | |
if: ${{ matrix.dependencies == 'locked' && matrix.php-version == '8.2' }} | |
run: "composer rector:check" | |
- name: "Unit tests" | |
run: "composer tests:unit" | |
- name: "End-to-End tests" | |
run: "composer tests:e2e" |