Allow doctrine/persistence v3 #73
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: "build" | |
on: | |
push: | |
branches: | |
- "master" | |
paths-ignore: | |
- "**/*.md" | |
pull_request: | |
paths-ignore: | |
- "**/*.md" | |
workflow_dispatch: ~ | |
env: | |
APP_ENV: "test" | |
DATABASE_URL: "mysql://root:[email protected]/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: | |
- "7.4" # Always use the lowest version of PHP since a higher version would create actual syntax errors in lower versions | |
dependencies: | |
- "highest" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v3" | |
- 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: "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: | |
- "7.4" | |
- "8.0" | |
- "8.1" | |
dependencies: | |
- "highest" | |
symfony: | |
- "^5.4" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v3" | |
- 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: "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 --config-file=$(pwd)/composer-require-checker.json" | |
- 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: | |
- "7.4" | |
- "8.0" | |
- "8.1" | |
dependencies: | |
- "highest" | |
symfony: | |
- "^5.4" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v3" | |
- 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: "Cache warmup" | |
run: "(cd tests/Application && bin/console cache:warmup)" | |
- 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: | |
- "7.4" | |
- "8.0" | |
- "8.1" | |
dependencies: | |
- "highest" | |
symfony: | |
- "^5.4" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v3" | |
- 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: | |
- "7.4" | |
- "8.0" | |
- "8.1" | |
dependencies: | |
- "highest" | |
symfony: | |
- "^5.4" | |
steps: | |
- name: "Start MySQL" | |
run: "sudo /etc/init.d/mysql start" | |
- name: "Checkout" | |
uses: "actions/checkout@v3" | |
- 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 -vvv)" | |
- name: "Create database schema" | |
run: "(cd tests/Application && bin/console doctrine:schema:create -vvv)" | |
- name: "Validate Doctrine mapping" | |
run: "(cd tests/Application && bin/console doctrine:schema:validate -vvv)" | |
code-coverage: | |
name: "Code Coverage (PHP${{ matrix.php-version }} | Deps: ${{ matrix.dependencies }})" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
dependencies: | |
- "highest" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v3" | |
- 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" | |
env: | |
CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}" | |
run: "bash <(curl -s https://codecov.io/bash)" |