ci: fix graphql #82
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: CI | |
on: | |
push: | |
pull_request: | |
env: | |
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERAGE: '0' | |
SYMFONY_DEPRECATIONS_HELPER: disabled=1 | |
jobs: | |
commitlint: | |
if: github.event_name == 'pull_request' | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Run commitlint | |
run: | | |
commit=$(gh api \ | |
/repos/${{ github.repository }}/pulls/${{github.event.number}}/commits \ | |
| jq -r '.[0].commit.message' \ | |
| head -n 1) | |
# we can't use npx see https://github.com/conventional-changelog/commitlint/issues/613 | |
echo '{}' > package.json | |
npm install --no-fund --no-audit @commitlint/config-conventional @commitlint/cli | |
echo $commit | ./node_modules/.bin/commitlint -g .commitlintrc | |
php-cs-fixer: | |
name: PHP-cs-fixer (PHP ${{ matrix.php }}) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '8.1' | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: intl, bcmath, curl, openssl, mbstring | |
ini-values: memory_limit=-1 | |
tools: pecl, composer, php-cs-fixer | |
coverage: none | |
- name: Run PHP-CS-Fixer fix | |
run: php-cs-fixer fix --dry-run --diff --ansi | |
phpstan: | |
name: PHPStan (PHP ${{ matrix.php }}) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '8.1' | |
fail-fast: false | |
env: | |
APP_DEBUG: '1' # https://github.com/phpstan/phpstan-symfony/issues/37 | |
SYMFONY_PHPUNIT_VERSION: '9.5' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Cache PHPStan results | |
uses: actions/cache@v3 | |
with: | |
path: /tmp/phpstan | |
key: phpstan-php${{ matrix.php }}-${{ github.sha }} | |
restore-keys: | | |
phpstan-php${{ matrix.php }}- | |
phpstan- | |
continue-on-error: true | |
- name: Clear test app cache | |
run: | | |
rm -Rf tests/Fixtures/app/var/cache/* | |
tests/Fixtures/app/console cache:warmup | |
- name: Run PHPStan analysis | |
env: | |
SYMFONY_PHPUNIT_VERSION: '9.5' | |
run: | | |
./vendor/bin/phpstan --version | |
./vendor/bin/phpstan analyse --no-interaction --no-progress --ansi | |
phpunit: | |
name: PHPUnit (PHP ${{ matrix.php }}) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.1' | |
- '7.2' | |
- '7.3' | |
- '7.4' | |
- '8.0' | |
- '8.1' | |
include: | |
- php: '8.1' | |
coverage: true | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_sqlite | |
coverage: pcov | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Enable code coverage | |
if: matrix.coverage | |
run: echo "COVERAGE=1" >> $GITHUB_ENV | |
- name: Remove Doctrine MongoDB ODM | |
if: (startsWith(matrix.php, '7.1')) | |
run: | | |
composer remove --dev --no-interaction --no-progress --no-update --ansi \ | |
doctrine/mongodb-odm \ | |
doctrine/mongodb-odm-bundle | |
# https://github.com/doctrine/dbal/issues/5570 | |
- name: Fix Doctrine dependencies | |
if: (startsWith(matrix.php, '7.1') || startsWith(matrix.php, '7.2') || startsWith(matrix.php, '7.3')) | |
run: composer require "doctrine/orm:<2.13" -W --dev --no-interaction --no-progress --ansi | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
if: (!startsWith(matrix.php, '7.1')) | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run PHPUnit tests | |
run: | | |
mkdir -p build/logs/phpunit | |
if [ "$COVERAGE" = '1' ]; then | |
vendor/bin/simple-phpunit --log-junit build/logs/phpunit/junit.xml --coverage-clover build/logs/phpunit/clover.xml | |
else | |
vendor/bin/simple-phpunit --log-junit build/logs/phpunit/junit.xml | |
fi | |
- name: Run PHPUnit 8.1+ tests | |
if: (startsWith(matrix.php, '8.1')) | |
run: ./vendor/bin/simple-phpunit --stop-on-failure tests/Metadata/Resource/Factory/ | |
- name: Upload test artifacts | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: phpunit-logs-php${{ matrix.php }} | |
path: build/logs/phpunit | |
continue-on-error: true | |
- name: Upload coverage results to Codecov | |
if: matrix.coverage | |
uses: codecov/codecov-action@v3 | |
with: | |
directory: build/logs/phpunit | |
name: phpunit-php${{ matrix.php }} | |
flags: phpunit | |
fail_ci_if_error: true | |
continue-on-error: true | |
- name: Upload coverage results to Coveralls | |
if: matrix.coverage | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
composer global require --prefer-dist --no-interaction --no-progress --ansi php-coveralls/php-coveralls | |
export PATH="$PATH:$HOME/.composer/vendor/bin" | |
php-coveralls --coverage_clover=build/logs/phpunit/clover.xml | |
continue-on-error: true | |
behat: | |
name: Behat (PHP ${{ matrix.php }}) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.1' | |
- '7.2' | |
- '7.3' | |
- '7.4' | |
- '8.0' | |
- '8.1' | |
include: | |
- php: '8.1' | |
coverage: true | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_sqlite | |
coverage: pcov | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Enable code coverage | |
if: matrix.coverage | |
run: echo "COVERAGE=1" >> $GITHUB_ENV | |
- name: Remove Doctrine MongoDB ODM | |
if: startsWith(matrix.php, '7.1') | |
run: | | |
composer remove --dev --no-interaction --no-progress --no-update --ansi \ | |
doctrine/mongodb-odm \ | |
doctrine/mongodb-odm-bundle | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
# https://github.com/doctrine/dbal/issues/5570 | |
- name: Fix Doctrine dependencies | |
if: (startsWith(matrix.php, '7.1') || startsWith(matrix.php, '7.2') || startsWith(matrix.php, '7.3')) | |
run: composer require "doctrine/orm:<2.13" -W --dev --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
if: (!startsWith(matrix.php, '7.1')) | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
if: (!startsWith(matrix.php, '8.')) | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Clear test app cache (php 8.0) | |
if: (startsWith(matrix.php, '8.')) | |
run: rm -Rf tests/Fixtures/app/var/cache/* | |
- name: Run Behat tests (PHP < 8) | |
if: (!startsWith(matrix.php, '8.')) | |
run: | | |
mkdir -p build/logs/behat | |
if [ "$COVERAGE" = '1' ]; then | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=default-coverage --no-interaction --tags='~@php8' | |
else | |
if [ "${{ matrix.php }}" = '7.1' ]; then | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=default --no-interaction --tags='~@symfony/uid&&~@php8' | |
else | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=default --no-interaction --tags='~@php8' | |
fi | |
fi | |
- name: Run Behat tests (PHP 8) | |
if: (startsWith(matrix.php, '8.')) | |
run: | | |
mkdir -p build/logs/behat | |
if [ "$COVERAGE" = '1' ]; then | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=default-coverage --no-interaction | |
else | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=default --no-interaction | |
fi | |
- name: Merge code coverage reports | |
if: matrix.coverage | |
run: | | |
wget -qO /usr/local/bin/phpcov https://phar.phpunit.de/phpcov.phar | |
chmod +x /usr/local/bin/phpcov | |
mkdir -p build/coverage | |
phpcov merge --clover build/logs/behat/clover.xml build/coverage | |
continue-on-error: true | |
- name: Upload test artifacts | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: behat-logs-php${{ matrix.php }} | |
path: build/logs/behat | |
continue-on-error: true | |
- name: Upload coverage results to Codecov | |
if: matrix.coverage | |
uses: codecov/codecov-action@v3 | |
with: | |
directory: build/logs/behat | |
name: behat-php${{ matrix.php }} | |
flags: behat | |
fail_ci_if_error: true | |
continue-on-error: true | |
- name: Upload coverage results to Coveralls | |
if: matrix.coverage | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
composer global require --prefer-dist --no-interaction --no-progress --ansi php-coveralls/php-coveralls | |
export PATH="$PATH:$HOME/.composer/vendor/bin" | |
php-coveralls --coverage_clover=build/logs/behat/clover.xml | |
continue-on-error: true | |
- name: Export OpenAPI documents | |
run: | | |
mkdir -p build/out/openapi | |
tests/Fixtures/app/console api:openapi:export --spec-version=2 -o build/out/openapi/swagger_v2.json | |
tests/Fixtures/app/console api:openapi:export --spec-version=2 --yaml -o build/out/openapi/swagger_v2.yaml | |
tests/Fixtures/app/console api:openapi:export --spec-version=3 -o build/out/openapi/openapi_v3.json | |
tests/Fixtures/app/console api:openapi:export --spec-version=3 --yaml -o build/out/openapi/openapi_v3.yaml | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '14' | |
- name: Validate OpenAPI documents | |
run: | | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/swagger_v2.json | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/swagger_v2.yaml | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/openapi_v3.json | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/openapi_v3.yaml | |
- name: Upload OpenAPI artifacts | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openapi-docs-php${{ matrix.php }} | |
path: build/out/openapi | |
continue-on-error: true | |
phpunit-lowest: | |
name: PHPUnit (PHP ${{ matrix.php }} lowest) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Require Symfony components | |
run: composer require symfony/intl symfony/uid --dev --no-interaction --no-progress --ansi --no-update | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi --prefer-lowest | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Run PHPUnit tests | |
run: vendor/bin/simple-phpunit | |
behat-lowest: | |
name: Behat (PHP ${{ matrix.php }} lowest) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_sqlite | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Require Symfony components | |
run: composer require symfony/intl symfony/uid --dev --no-interaction --no-progress --ansi --no-update | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi --prefer-lowest | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run Behat tests | |
# @TODO remove the tag "@symfony/uid" in 3.0 | |
run: vendor/bin/behat --out=std --format=progress --profile=default --no-interaction --tags='~@symfony/uid&&~php8' | |
postgresql: | |
name: Behat (PHP ${{ matrix.php }}) (PostgreSQL) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
fail-fast: false | |
env: | |
APP_ENV: postgres | |
DATABASE_URL: postgres://api_platform:apiplatformrocks@localhost/api_platform_test | |
PGPASSWORD: apiplatformrocks | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup postgres | |
run: | | |
sudo systemctl start postgresql | |
sudo -u postgres psql -d template1 -c "CREATE USER api_platform WITH PASSWORD 'apiplatformrocks' CREATEDB" | |
createdb -h localhost -p 5432 -U api_platform api_platform_test | |
pg_isready -d api_platform_test -h localhost -p 5432 -U api_platform | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_pgsql | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run Behat tests | |
run: | | |
vendor/bin/behat --out=std --format=progress --profile=postgres --no-interaction -vv --tags='~php8' | |
mysql: | |
name: Behat (PHP ${{ matrix.php }}) (MySQL) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
fail-fast: false | |
services: | |
mysql: | |
image: mariadb:10.5.9 | |
env: | |
MYSQL_ROOT_PASSWORD: root | |
MYSQL_DATABASE: api_platform_test | |
ports: | |
- 3306:3306 | |
env: | |
APP_ENV: mysql | |
DATABASE_URL: mysql://root:[email protected]/api_platform_test | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_mysql | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run Behat tests | |
run: vendor/bin/behat --out=std --format=progress --profile=default --no-interaction --tags '~@!mysql&&~@php8' | |
mongodb: | |
name: PHPUnit + Behat (PHP ${{ matrix.php }}) (MongoDB) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '8' | |
fail-fast: false | |
env: | |
APP_ENV: mongodb | |
MONGODB_URL: mongodb://localhost:27017 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup MongoDB | |
run: | | |
sudo apt update | |
sudo apt install -y wget gnupg | |
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - | |
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list | |
sudo apt update | |
sudo apt install -y mongodb-org | |
sudo systemctl start mongod | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, mongodb | |
coverage: pcov | |
ini-values: memory_limit=-1 | |
- name: Enable code coverage | |
run: echo "COVERAGE=1" >> $GITHUB_ENV | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: | | |
composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run PHPUnit tests | |
run: vendor/bin/simple-phpunit --log-junit build/logs/phpunit/junit.xml --coverage-clover build/logs/phpunit/clover.xml --group mongodb | |
- name: Run Behat tests | |
run: | | |
mkdir -p build/logs/behat | |
if [ "$COVERAGE" = '1' ]; then | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=mongodb-coverage --no-interaction --tags='~@php8' | |
else | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=mongodb --no-interaction --tags='~@php8' | |
fi | |
- name: Merge code coverage reports | |
run: | | |
wget -qO /usr/local/bin/phpcov https://phar.phpunit.de/phpcov.phar | |
chmod +x /usr/local/bin/phpcov | |
mkdir -p build/coverage | |
phpcov merge --clover build/logs/behat/clover.xml build/coverage | |
continue-on-error: true | |
- name: Upload test artifacts | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: behat-logs-php${{ matrix.php }} | |
path: build/logs/behat | |
continue-on-error: true | |
- name: Upload coverage results to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
directory: build/logs/behat | |
name: behat-php${{ matrix.php }} | |
flags: behat | |
fail_ci_if_error: true | |
continue-on-error: true | |
- name: Upload coverage results to Coveralls | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
composer global require --prefer-dist --no-interaction --no-progress --ansi php-coveralls/php-coveralls | |
export PATH="$PATH:$HOME/.composer/vendor/bin" | |
php-coveralls --coverage_clover=build/logs/behat/clover.xml | |
continue-on-error: true | |
elasticsearch: | |
name: Behat (PHP ${{ matrix.php }}) (Elasticsearch) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '8.0' | |
- '8.1' | |
fail-fast: false | |
env: | |
APP_ENV: elasticsearch | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Configure sysctl limits | |
run: | | |
sudo swapoff -a | |
sudo sysctl -w vm.swappiness=1 | |
sudo sysctl -w fs.file-max=262144 | |
sudo sysctl -w vm.max_map_count=262144 | |
- name: Runs Elasticsearch | |
uses: elastic/elastic-github-actions/elasticsearch@master | |
with: | |
stack-version: '7.6.0' | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, mongodb | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run Behat tests | |
run: vendor/bin/behat --out=std --format=progress --profile=elasticsearch --no-interaction | |
phpunit-no-deprecations: | |
name: PHPUnit (PHP ${{ matrix.php }}) (no deprecations) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
fail-fast: false | |
env: | |
SYMFONY_DEPRECATIONS_HELPER: max[total]=0 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run PHPUnit tests | |
run: vendor/bin/simple-phpunit | |
phpunit-symfony-next: | |
name: PHPUnit (PHP ${{ matrix.php }}) (Symfony dev) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '8.1' | |
fail-fast: false | |
env: | |
# See https://github.com/doctrine/DoctrineMongoDBBundle/pull/673 | |
#SYMFONY_DEPRECATIONS_HELPER: max[direct]=0 | |
SYMFONY_DEPRECATIONS_HELPER: max[self]=0 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.1' | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Allow unstable project dependencies | |
run: composer config minimum-stability dev | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Remove cache | |
run: rm -Rf tests/Fixtures/app/var/cache/* | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/intl symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run PHPUnit tests | |
run: vendor/bin/simple-phpunit | |
behat-symfony-next: | |
name: Behat (PHP ${{ matrix.php }}) (Symfony dev) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '8.1' | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.1' | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Install additional packages | |
run: sudo apt-get install moreutils | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Allow unstable project dependencies | |
run: composer config minimum-stability dev | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Remove cache | |
run: rm -Rf tests/Fixtures/app/var/cache/* | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/intl symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run Behat tests | |
run: vendor/bin/behat --out=std --format=progress --profile=default --no-interaction | |
behat-rector-upgrade: | |
name: Behat (PHP ${{ matrix.php }}) (upgrade script) | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '8.1' | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_sqlite | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: rm -Rf tests/Fixtures/app/var/cache/* | |
- name: Convert metadata to API Platform 3 | |
run: | | |
tests/Fixtures/app/console api:upgrade-resource -f | |
- name: Apply behat features patch (IRIs update) | |
run: | | |
git apply .github/patch/v3_features.patch | |
- name: clear test app cache | |
run: rm -rf tests/Fixtures/app/var/cache/* | |
- name: Run Behat tests | |
run: | | |
mkdir -p build/logs/behat | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=default --no-interaction | |
- name: Upload test artifacts | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: behat-logs-php${{ matrix.php }} | |
path: build/logs/behat | |
continue-on-error: true | |
- name: Export OpenAPI documents | |
run: | | |
mkdir -p build/out/openapi | |
tests/Fixtures/app/console api:openapi:export --spec-version=2 -o build/out/openapi/swagger_v2.json | |
tests/Fixtures/app/console api:openapi:export --spec-version=2 --yaml -o build/out/openapi/swagger_v2.yaml | |
tests/Fixtures/app/console api:openapi:export --spec-version=3 -o build/out/openapi/openapi_v3.json | |
tests/Fixtures/app/console api:openapi:export --spec-version=3 --yaml -o build/out/openapi/openapi_v3.yaml | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '14' | |
- name: Validate OpenAPI documents | |
run: | | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/swagger_v2.json | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/swagger_v2.yaml | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/openapi_v3.json | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/openapi_v3.yaml | |
- name: Upload OpenAPI artifacts | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openapi-docs-php${{ matrix.php }} | |
path: build/out/openapi | |
continue-on-error: true | |
behat-rector-upgrade-mongodb: | |
name: Behat (PHP ${{ matrix.php }}) (upgrade script / MongoDB) | |
runs-on: ubuntu-latest | |
env: | |
APP_ENV: mongodb | |
MONGODB_URL: mongodb://localhost:27017 | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '8.1' | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup MongoDB | |
run: | | |
sudo apt update | |
sudo apt install -y wget gnupg | |
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - | |
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list | |
sudo apt update | |
sudo apt install -y mongodb-org | |
sudo systemctl start mongod | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, mongodb | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: rm -Rf tests/Fixtures/app/var/cache/* | |
- name: Convert metadata to API Platform 3 | |
run: | | |
tests/Fixtures/app/console api:upgrade-resource -f | |
- name: Apply behat features patch (IRIs update) | |
run: | | |
git apply .github/patch/v3_features.patch | |
- name: Clear test app cache | |
run: rm -Rf tests/Fixtures/app/var/cache/* | |
- name: Run Behat tests | |
run: | | |
mkdir -p build/logs/behat | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=mongodb --no-interaction | |
- name: Upload test artifacts | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: behat-logs-php${{ matrix.php }} | |
path: build/logs/behat | |
continue-on-error: true | |
windows-phpunit: | |
name: Windows PHPUnit (PHP ${{ matrix.php }}) (SQLite) | |
runs-on: windows-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
- '8.0' | |
- '8.1' | |
fail-fast: false | |
env: | |
APP_ENV: sqlite | |
DATABASE_URL: sqlite:///%kernel.project_dir%/var/data.db | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP with pre-release PECL extension | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_sqlite | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
shell: bash | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Set Composer platform config | |
if: (startsWith(matrix.php, '8.')) | |
run: | | |
composer config platform.php 7.4.99 | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install phpunit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run PHPUnit tests | |
run: vendor/bin/simple-phpunit --log-junit build/logs/phpunit/junit.xml | |
windows-behat: | |
name: Windows Behat (PHP ${{ matrix.php }}) (SQLite) | |
runs-on: windows-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
- '8.0' | |
- '8.1' | |
fail-fast: false | |
env: | |
APP_ENV: sqlite | |
DATABASE_URL: sqlite:///%kernel.project_dir%/var/data.db | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP with pre-release PECL extension | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_sqlite | |
coverage: none | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
shell: bash | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Set Composer platform config | |
if: (startsWith(matrix.php, '8.')) | |
run: | | |
composer config platform.php 7.4.99 | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install phpunit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run Behat tests | |
run: | | |
if ( "${{ matrix.php }}" -eq '7.4' ) { | |
vendor/bin/behat --out=std --format=progress --profile=default --no-interaction --tags='~@php8' | |
} else { | |
vendor/bin/behat --out=std --format=progress --profile=default --no-interaction | |
} | |
phpunit_legacy_metadata: | |
name: PHPUnit (PHP ${{ matrix.php }}) 2.7 BC layer | |
env: | |
METADATA_BACKWARD_COMPATIBILITY_LAYER: 1 | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_sqlite | |
coverage: pcov | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run PHPUnit tests | |
run: | | |
mkdir -p build/logs/phpunit | |
vendor/bin/simple-phpunit --log-junit build/logs/phpunit/junit.xml | |
behat_legacy_metadata: | |
name: Behat (PHP ${{ matrix.php }}) 2.7 BC layer | |
env: | |
METADATA_BACKWARD_COMPATIBILITY_LAYER: 1 | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
php: | |
- '7.4' | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: pecl, composer | |
extensions: intl, bcmath, curl, openssl, mbstring, pdo_sqlite | |
coverage: pcov | |
ini-values: memory_limit=-1 | |
- name: Get composer cache directory | |
id: composercache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composercache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Update project dependencies | |
run: composer update --no-interaction --no-progress --ansi | |
- name: Require Symfony components | |
run: composer require symfony/uid --dev --no-interaction --no-progress --ansi | |
- name: Install PHPUnit | |
run: vendor/bin/simple-phpunit --version | |
- name: Clear test app cache | |
run: tests/Fixtures/app/console cache:clear --ansi | |
- name: Run Behat tests | |
run: | | |
mkdir -p build/logs/behat | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=default --no-interaction --tags='~@php8' --tags='~@v3' | |
- name: Run Behat tests (PHP 8) | |
if: (startsWith(matrix.php, '8.')) | |
run: | | |
mkdir -p build/logs/behat | |
vendor/bin/behat --out=std --format=progress --format=junit --out=build/logs/behat/junit --profile=default --no-interaction | |
- name: Export OpenAPI documents | |
run: | | |
mkdir -p build/out/openapi | |
tests/Fixtures/app/console api:openapi:export --spec-version=2 -o build/out/openapi/swagger_v2.json | |
tests/Fixtures/app/console api:openapi:export --spec-version=2 --yaml -o build/out/openapi/swagger_v2.yaml | |
tests/Fixtures/app/console api:openapi:export --spec-version=3 -o build/out/openapi/openapi_v3.json | |
tests/Fixtures/app/console api:openapi:export --spec-version=3 --yaml -o build/out/openapi/openapi_v3.yaml | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '14' | |
- name: Validate OpenAPI documents | |
run: | | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/swagger_v2.json | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/swagger_v2.yaml | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/openapi_v3.json | |
npx git+https://github.com/soyuka/swagger-cli#master validate build/out/openapi/openapi_v3.yaml |