Skip to content

Make compatible with 8.2 ArrayIterator infarface changes #27

Make compatible with 8.2 ArrayIterator infarface changes

Make compatible with 8.2 ArrayIterator infarface changes #27

Workflow file for this run

name: CI
on:
push:
branches:
- 'master'
pull_request:
workflow_dispatch:
jobs:
testsuite:
name: "Test Suite"
runs-on: ubuntu-18.04
strategy:
fail-fast: false
matrix:
php-version: [ '7.4', '8.1' ]
db-type: [ sqlite, mysql, pgsql, agnostic ]
symfony-version: [ '4-min', '4-max', '5-min', '5-max', '6-min', '6-max' ]
exclude:
- symfony-version: '4-min'
php-version: '8.1'
- symfony-version: '6-min'
php-version: '7.4'
- symfony-version: '6-max'
php-version: '7.4'
steps:
- name: Install PostgreSQL latest
if: matrix.db-type == 'pgsql' && matrix.php-version != '7.3'
uses: CasperWA/[email protected]
with:
postgresql db: 'propel-tests'
postgresql user: 'postgres'
postgresql password: 'postgres'
- name: Install PostgreSQL min
if: matrix.db-type == 'pgsql' && matrix.php-version == '7.3'
uses: CasperWA/[email protected]
with:
postgresql version: 9
postgresql db: 'propel-tests'
postgresql user: 'postgres'
postgresql password: 'postgres'
- name: Install MariaDb latest
if: matrix.db-type == 'mysql' && matrix.php-version != '7.3'
uses: getong/[email protected]
- name: Install MariaDb min
if: matrix.db-type == 'mysql' && matrix.php-version == '7.3'
uses: getong/[email protected]
with:
mariadb version: '10.2'
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: json, libxml, pdo, pdo_mysql, pdo_sqlite, pdo_pgsql, sqlite3
coverage: pcov
- name: Checkout
uses: actions/checkout@v2
- name: Composer get cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Composer cache dependencies
uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Move specific composer.json (Symfony version ${{ matrix.symfony-version }})
run: mv tests/composer/composer-symfony${{ matrix.symfony-version }}.json composer.json
- name: Composer install (Symfony version ${{ matrix.symfony-version }})
run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: Setup Postgresql database for test suite
if: matrix.db-type == 'pgsql'
run: tests/bin/setup.pgsql.sh
env:
DB_NAME: 'propel-tests'
DB_USER: 'postgres'
DB_PW: 'postgres'
- name: Setup the database for test suite
if: matrix.db-type != 'agnostic' && matrix.db-type != 'pgsql'
run: tests/bin/setup.${{ matrix.db-type }}.sh
- name: Run PostgreSQL tests
if: matrix.db-type == 'pgsql'
shell: 'script -q -e -c "bash {0}"'
run: |
if [[ ${{ matrix.php-version }} == '7.4' && ${{ matrix.symfony-version == '5-max' }} ]]; then
export CODECOVERAGE=1 && vendor/bin/phpunit -c tests/pgsql.phpunit.xml --verbose --coverage-clover=tests/coverage.xml
else
vendor/bin/phpunit -c tests/pgsql.phpunit.xml
fi
env:
DB_NAME: 'propel-tests'
DB_USER: 'postgres'
DB_PW: 'postgres'
- name: Run ${{ matrix.db-type }} tests
if: matrix.db-type != 'pgsql'
shell: 'script -q -e -c "bash {0}"'
run: |
if [[ ${{ matrix.php-version }} == '7.4' && ${{ matrix.symfony-version == '5-max' }} ]]; then
export CODECOVERAGE=1 && vendor/bin/phpunit -c tests/${{ matrix.db-type }}.phpunit.xml --verbose --coverage-clover=tests/coverage.xml
else
vendor/bin/phpunit -c tests/${{ matrix.db-type }}.phpunit.xml
fi
- name: Code Coverage Report
if: success() && matrix.php-version == '7.4' && matrix.symfony-version == '5-max'
uses: codecov/codecov-action@v1
with:
flags: ${{ matrix.php-version }}, ${{ matrix.db-type }}, ${{ matrix.symfony-version }}
file: tests/coverage.xml
code-style-and-static-analysis:
runs-on: ubuntu-18.04
steps:
- name: Setup PHP
id: setup-php
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: json, libxml, pdo, pdo_mysql, pdo_sqlite, pdo_pgsql, sqlite3
coverage: pcov
- uses: actions/checkout@v2
- name: Composer get cache directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Composer cache
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Composer validate
run: composer validate
- name: Composer install
run: composer install --prefer-dist --no-interaction
- name: PHPStan
run: composer stan
- name: Psalm
run: composer psalm -- --php-version=${{ steps.setup-php.outputs.php-version }}
- name: Code Style
run: composer cs-check