⚡ Avoid systematic count query #185
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: "Continuous Integration" | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
coding-standards: | |
name: "Coding Standards" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
tools: "cs2pr" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer install --no-interaction --no-progress --no-suggest" | |
- name: "Run PHP-CS-Fixer on src/" | |
run: "vendor/bin/php-cs-fixer fix src/ --dry-run --stop-on-violation --format=checkstyle | cs2pr" | |
- name: "Run PHP-CS-Fixer on tests/" | |
run: "vendor/bin/php-cs-fixer fix tests/ --dry-run --stop-on-violation --format=checkstyle | cs2pr" | |
require-checker: | |
name: "Composer require checker" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
tools: "cs2pr" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer install --no-interaction --no-progress --no-suggest" | |
- name: "Run require-checker" | |
run: "composer require-checker" | |
phpunit-mysql57: | |
name: "PHPUnit on MySQL 5.7 and PhpStan" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
services: | |
mysql: | |
image: "mysql:5.7" | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: true | |
MYSQL_ROOT_PASSWORD: | |
ports: | |
- "3306:3306" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
with: | |
fetch-depth: 2 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "" | |
coverage: "pcov" | |
tools: "cs2pr" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer install --no-interaction --no-progress --no-suggest" | |
- name: "Run PHPUnit" | |
run: "vendor/bin/phpunit -c phpunit.mysql8.xml --coverage-clover=coverage.xml" | |
- name: "Upload Code Coverage" | |
uses: "codecov/codecov-action@v1" | |
# PHPStan is run after PHPUnit because we want to analyze the generated files too. | |
- name: "Run a static analysis with phpstan/phpstan" | |
run: "composer phpstan -- --error-format=checkstyle | cs2pr" | |
phpunit-mysql8: | |
name: "PHPUnit on MySQL 8" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
- "8.0" | |
services: | |
mysql: | |
image: "mysql:8" | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: true | |
MYSQL_ROOT_PASSWORD: | |
ports: | |
- "3306:3306" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
with: | |
fetch-depth: 2 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "" | |
coverage: "pcov" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer install --no-interaction --no-progress --no-suggest" | |
- name: "Run PHPUnit" | |
run: "vendor/bin/phpunit -c phpunit.mysql8.xml --coverage-clover=coverage.xml" | |
- name: "Upload Code Coverage" | |
uses: "codecov/codecov-action@v1" | |
phpunit-prefer-lowest: | |
name: "PHPUnit with prefer-lowest" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
services: | |
mysql: | |
image: "mysql:8" | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: true | |
MYSQL_ROOT_PASSWORD: | |
ports: | |
- "3306:3306" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
with: | |
fetch-depth: 2 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "" | |
coverage: "pcov" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" | |
- name: "Run PHPUnit" | |
run: "vendor/bin/phpunit -c phpunit.mysql8.xml --coverage-clover=coverage.xml" | |
- name: "Upload Code Coverage" | |
uses: "codecov/codecov-action@v1" | |
phpunit-mariadb105: | |
name: "PHPUnit on MariaDB 10.5" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
services: | |
mysql: | |
image: "mariadb:10.5" | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
ports: | |
- "3306:3306" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
with: | |
fetch-depth: 2 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "" | |
coverage: "pcov" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer install --no-interaction --no-progress --no-suggest" | |
- name: "Run PHPUnit" | |
run: "vendor/bin/phpunit -c phpunit.mariadb.xml --coverage-clover=coverage.xml" | |
- name: "Upload Code Coverage" | |
uses: "codecov/codecov-action@v1" | |
phpunit-postgresql: | |
name: "PHPUnit on PostgreSQL" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
services: | |
postgres: | |
image: postgres:12 | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- "5432:5432" | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
with: | |
fetch-depth: 2 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "pgsql" | |
coverage: "pcov" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer install --no-interaction --no-progress --no-suggest" | |
- name: "Run PHPUnit" | |
run: "vendor/bin/phpunit -c phpunit.postgres.github.xml --coverage-clover=coverage.xml" | |
- name: "Upload Code Coverage" | |
uses: "codecov/codecov-action@v1" | |
phpunit-phpbench: | |
name: "PHPBench" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
services: | |
mysql: | |
image: "mysql:8" | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: true | |
MYSQL_ROOT_PASSWORD: | |
ports: | |
- "3306:3306" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
with: | |
fetch-depth: 0 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "" | |
coverage: "pcov" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer install --no-interaction --no-progress --no-suggest" | |
- name: "Running PHPBench on current branch" | |
run: "./phpbench.dist.sh run --tag=current_pr --store" | |
- name: "Reverting any change (that could have been triggered by composer install)" | |
run: "git checkout -- ." | |
- name: "Switching to master branch" | |
run: "git checkout master" | |
- name: "Updating dependencies" | |
run: "composer update" | |
- name: "Running PHPBENCH on master, Generating Report (RESULTS ARE INVERTED AS MASTER IS RUN AFTER CURRENT)" | |
run: "./phpbench.dist.sh run --ref=current_pr --store --report=aggregate" | |
phpunit-oci8: | |
name: "PHPUnit on OCI8" | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
php-version: | |
- "7.4" | |
services: | |
oracle: | |
image: "wnameless/oracle-xe-11g-r2" | |
ports: | |
- "1521:1521" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v2" | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "oci8" | |
coverage: "pcov" | |
- name: "Cache dependencies installed with composer" | |
uses: "actions/cache@v1" | |
with: | |
path: "~/.composer/cache" | |
key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}" | |
restore-keys: "php-${{ matrix.php-version }}-composer-locked-" | |
- name: "Install dependencies with composer" | |
run: "composer install --no-interaction --no-progress --no-suggest" | |
- name: "Run PHPUnit" | |
run: "vendor/bin/phpunit -c phpunit.oracle.xml --coverage-clover=coverage.xml" | |
- name: "Upload Code Coverage" | |
uses: "codecov/codecov-action@v1" |