Skip to content

Widen matthiasnoback/symfony-config-test constraint #442

Widen matthiasnoback/symfony-config-test constraint

Widen matthiasnoback/symfony-config-test constraint #442

Workflow file for this run

name: "build"
on:
push:
branches:
- "1.*.x" # Matches our branch versioning that mirrors Sylius', e.g. '1.12.x'
- "master"
- "main"
paths-ignore:
- "**/*.md"
pull_request:
paths-ignore:
- "**/*.md"
workflow_dispatch: ~
env:
APP_ENV: "test"
DATABASE_URL: "mysql://root:root@127.0.0.1/sylius?serverVersion=8.0"
PHP_EXTENSIONS: "intl, mbstring"
jobs:
coding-standards:
name: "Coding Standards (PHP${{ matrix.php-version }} | Deps: ${{ matrix.dependencies }})"
runs-on: "ubuntu-latest"
strategy:
matrix:
php-version:
- "8.1" # Always use the lowest version of PHP since a higher version could create actual syntax errors in lower versions
dependencies:
- "highest"
steps:
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Setup PHP, with composer and extensions"
uses: "shivammathur/setup-php@v2"
with:
php-version: "${{ matrix.php-version }}"
extensions: "${{ env.PHP_EXTENSIONS }}"
coverage: "none"
- name: "Install composer dependencies"
uses: "ramsey/composer-install@v2"
with:
dependency-versions: "${{ matrix.dependencies }}"
- name: "Validate composer"
run: "composer validate --strict"
- name: "Check composer normalized"
run: "composer normalize --dry-run"
- name: "Check style"
run: "composer check-style"
- name: "Rector"
run: "vendor/bin/rector process --dry-run"
continue-on-error: true
- name: "Lint yaml files"
run: "(cd tests/Application && bin/console lint:yaml ../../src/Resources)"
- name: "Lint twig files"
run: "(cd tests/Application && bin/console lint:twig ../../src/Resources)"
dependency-analysis:
name: "Dependency Analysis (PHP${{ matrix.php-version }} | Deps: ${{ matrix.dependencies }} | SF${{ matrix.symfony }})"
runs-on: "ubuntu-latest"
strategy:
matrix:
php-version:
- "8.1"
- "8.2"
dependencies:
- "lowest"
- "highest"
symfony:
- "~5.4.0"
- "~6.4.0"
steps:
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Setup PHP, with composer and extensions"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
extensions: "${{ env.PHP_EXTENSIONS }}"
php-version: "${{ matrix.php-version }}"
tools: "composer-require-checker, composer-unused, flex"
- name: "Remove require-dev section in composer.json"
run: "composer config --unset require-dev"
- name: "Install composer dependencies"
uses: "ramsey/composer-install@v2"
env:
SYMFONY_REQUIRE: "${{ matrix.symfony }}"
with:
dependency-versions: "${{ matrix.dependencies }}"
- name: "Run maglnet/composer-require-checker"
run: "composer-require-checker check"
- name: "Run composer-unused/composer-unused"
run: "composer-unused"
static-code-analysis:
name: "Static Code Analysis (PHP${{ matrix.php-version }} | Deps: ${{ matrix.dependencies }} | SF${{ matrix.symfony }})"
runs-on: "ubuntu-latest"
strategy:
matrix:
php-version:
- "8.1"
- "8.2"
dependencies:
- "lowest"
- "highest"
symfony:
- "~5.4.0"
- "~6.4.0"
steps:
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Setup PHP, with composer and extensions"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
extensions: "${{ env.PHP_EXTENSIONS }}"
php-version: "${{ matrix.php-version }}"
tools: "flex"
- name: "Remove sylius/sylius from composer.json"
run: "composer remove --dev --no-update --no-plugins --no-scripts sylius/sylius"
- name: "Install composer dependencies"
uses: "ramsey/composer-install@v2"
env:
SYMFONY_REQUIRE: "${{ matrix.symfony }}"
with:
dependency-versions: "${{ matrix.dependencies }}"
- name: "Static analysis"
run: "vendor/bin/psalm --php-version=${{ matrix.php-version }}"
unit-tests:
name: "Unit tests (PHP${{ matrix.php-version }} | Deps: ${{ matrix.dependencies }} | SF${{ matrix.symfony }})"
runs-on: "ubuntu-latest"
strategy:
matrix:
php-version:
- "8.1"
- "8.2"
dependencies:
- "lowest"
- "highest"
symfony:
- "~5.4.0"
- "~6.4.0"
steps:
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Setup PHP, with composer and extensions"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
extensions: "${{ env.PHP_EXTENSIONS }}"
php-version: "${{ matrix.php-version }}"
tools: "flex"
- name: "Install composer dependencies"
uses: "ramsey/composer-install@v2"
env:
SYMFONY_REQUIRE: "${{ matrix.symfony }}"
with:
dependency-versions: "${{ matrix.dependencies }}"
- name: "Run phpunit"
run: "composer phpunit"
integration-tests:
name: "Integration tests (PHP${{ matrix.php-version }} | Deps: ${{ matrix.dependencies }} | SF${{ matrix.symfony }})"
runs-on: "ubuntu-latest"
strategy:
matrix:
php-version:
- "8.1"
- "8.2"
dependencies:
- "lowest"
- "highest"
symfony:
- "~5.4.0"
- "~6.4.0"
steps:
- name: "Start MySQL"
run: "sudo /etc/init.d/mysql start"
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Setup PHP, with composer and extensions"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
extensions: "${{ env.PHP_EXTENSIONS }}"
php-version: "${{ matrix.php-version }}"
tools: "flex"
- name: "Install composer dependencies"
uses: "ramsey/composer-install@v2"
env:
SYMFONY_REQUIRE: "${{ matrix.symfony }}"
with:
dependency-versions: "${{ matrix.dependencies }}"
- name: "Lint container"
run: "(cd tests/Application && bin/console lint:container)"
- name: "Create database"
run: "(cd tests/Application && bin/console doctrine:database:create)"
- name: "Create database schema"
run: "(cd tests/Application && bin/console doctrine:schema:create)"
- name: "Validate Doctrine mapping"
run: "(cd tests/Application && bin/console doctrine:schema:validate)"
mutation-tests:
name: "Mutation tests"
runs-on: "ubuntu-latest"
strategy:
matrix:
php-version:
- "8.2"
dependencies:
- "highest"
steps:
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Setup PHP, with composer and extensions"
uses: "shivammathur/setup-php@v2"
with:
coverage: "pcov"
extensions: "${{ env.PHP_EXTENSIONS }}"
php-version: "${{ matrix.php-version }}"
- name: "Install composer dependencies"
uses: "ramsey/composer-install@v2"
with:
dependency-versions: "${{ matrix.dependencies }}"
- name: "Run infection"
run: "vendor/bin/infection"
env:
STRYKER_DASHBOARD_API_KEY: "${{ secrets.STRYKER_DASHBOARD_API_KEY }}"
code-coverage:
name: "Code Coverage (PHP${{ matrix.php-version }} | Deps: ${{ matrix.dependencies }})"
runs-on: "ubuntu-latest"
strategy:
matrix:
php-version:
- "8.2"
dependencies:
- "highest"
steps:
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Setup PHP, with composer and extensions"
uses: "shivammathur/setup-php@v2"
with:
coverage: "pcov"
extensions: "${{ env.PHP_EXTENSIONS }}"
php-version: "${{ matrix.php-version }}"
- name: "Set up problem matchers for phpunit/phpunit"
run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\""
- name: "Install composer dependencies"
uses: "ramsey/composer-install@v2"
with:
dependency-versions: "${{ matrix.dependencies }}"
- name: "Collect code coverage with pcov and phpunit/phpunit"
run: "vendor/bin/phpunit --coverage-clover=.build/logs/clover.xml"
- name: "Send code coverage report to Codecov.io"
uses: "codecov/codecov-action@v3"
with:
token: "${{ secrets.CODECOV_TOKEN }}"