Merge pull request #422 from franmomu/sf7 #92
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: Tests | |
on: | |
pull_request: ~ | |
push: ~ | |
concurrency: | |
group: ${{ github.workflow }} @ ${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
name: PHP ${{ matrix.php }} - ${{ matrix.dependencies || format('Symfony {0}', matrix.symfony) }}${{ (matrix.note && format(' ({0})', matrix.note)) || '' }}${{ (matrix.allow-failure && ' 🔕') || '' }} | |
runs-on: ubuntu-latest | |
continue-on-error: ${{ matrix.allow-failure || false }} | |
env: | |
SYMFONY_REQUIRE: ${{ matrix.symfony }} | |
SYMFONY_DEPRECATIONS_HELPER: ${{ matrix.symfony-deprecations }} | |
DB_DSN_MYSQL: mysql://test:test@127.0.0.1/craue_form_flow_tests | |
DB_DSN_POSTGRESQL: pgsql://test:test@127.0.0.1/craue_form_flow_tests | |
DB_DSN_SQLITE: sqlite:///sqlite.db | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- | |
php: '7.3' | |
dependencies: lowest | |
- | |
php: '8.3' | |
dependencies: highest | |
- | |
php: '7.3' | |
symfony: '4.4.*' | |
- | |
php: '7.4' | |
symfony: '5.4.*' | |
# TODO remove as soon as Symfony >= 5.0 is required | |
- | |
php: '7.4' | |
symfony: '5.4.*' | |
note: contao-polyfill-symfony | |
contao-polyfill-symfony: true | |
- | |
php: '8.0' | |
symfony: '5.4.*' | |
- | |
php: '8.1' | |
symfony: '5.4.*' | |
- | |
php: '8.1' | |
symfony: '6.3.*' | |
- | |
php: '8.2' | |
symfony: '6.4.*' | |
- | |
php: '8.3' | |
symfony: '6.4.*' | |
- | |
php: '8.2' | |
symfony: '7.0.*' | |
services: | |
mysql: | |
image: mysql:${{ (matrix.php == '7.3' && '5.7') || '8.0' }} | |
env: | |
MYSQL_USER: test | |
MYSQL_PASSWORD: test | |
MYSQL_DATABASE: craue_form_flow_tests | |
MYSQL_ALLOW_EMPTY_PASSWORD: yes | |
options: >- | |
--health-cmd "mysqladmin ping --silent" | |
--health-interval 5s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 3306:3306 | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_USER: test | |
POSTGRES_PASSWORD: test | |
POSTGRES_DB: craue_form_flow_tests | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 5s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: pdo_mysql, pdo_pgsql, pdo_sqlite | |
coverage: pcov | |
ini-values: memory_limit=-1, variables_order="EGPCS" | |
tools: flex | |
env: | |
fail-fast: true # interrupt on extension setup error | |
# TODO remove as soon as Symfony >= 5.0 is required | |
- name: require contao/polyfill-symfony | |
if: matrix.contao-polyfill-symfony == true | |
run: composer require --no-update --dev contao/polyfill-symfony | |
- name: use dev dependencies | |
if: matrix.stability == 'dev' | |
run: composer config minimum-stability dev | |
- name: install dependencies with Composer | |
uses: ramsey/composer-install@v2 | |
with: | |
dependency-versions: ${{ matrix.dependencies }} | |
composer-options: --prefer-dist | |
- name: run PHPUnit | |
run: vendor/bin/phpunit -v --coverage-clover build/logs/clover.xml --exclude-group run-with-multiple-databases-only | |
- name: run PHPUnit with MySQL | |
if: always() | |
run: vendor/bin/phpunit -v --coverage-clover build/logs/clover-mysql.xml --group run-with-multiple-databases,run-with-multiple-databases-only | |
env: | |
DB_FLAVOR: mysql | |
- name: run PHPUnit with PostgreSQL | |
if: always() | |
run: vendor/bin/phpunit -v --coverage-clover build/logs/clover-postgresql.xml --group run-with-multiple-databases,run-with-multiple-databases-only | |
env: | |
DB_FLAVOR: postgresql | |
- name: run PHPUnit with SQLite | |
if: always() | |
run: vendor/bin/phpunit -v --coverage-clover build/logs/clover-sqlite.xml --group run-with-multiple-databases,run-with-multiple-databases-only | |
env: | |
DB_FLAVOR: sqlite | |
- name: upload code coverage data | |
if: github.repository == 'craue/CraueFormFlowBundle' | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_FLAG_NAME: PHP ${{ matrix.php }} - ${{ matrix.dependencies || format('Symfony {0}', matrix.symfony) }}${{ (matrix.note && format(' ({0})', matrix.note)) || '' }} | |
run: | | |
unset SYMFONY_REQUIRE | |
composer global require php-coveralls/php-coveralls | |
php-coveralls -v --coverage_clover "build/logs/clover*.xml" |