diff --git a/.github/actions/ci-setup/action.yml b/.github/actions/ci-setup/action.yml index f800cf09..37ec30df 100644 --- a/.github/actions/ci-setup/action.yml +++ b/.github/actions/ci-setup/action.yml @@ -40,8 +40,7 @@ runs: php-version: ${{ inputs.php-version }} tools: composer extensions: ${{ inputs.php-extensions }} - coverage: pcov - ini-values: pcov.directory=module + coverage: xdebug - name: Install dependencies if: ${{ inputs.install-deps == 'yes' }} run: composer install --no-interaction --prefer-dist ${{ inputs.php-version == '8.4' && '--ignore-platform-req=php' || '' }} diff --git a/.gitignore b/.gitignore index a7f9b895..04c8ed56 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,3 @@ docs/mercure.html docker-compose.override.yml .phpunit.result.cache docs/swagger/swagger-inlined.json -phpcov* diff --git a/bin/test/run-api-tests.sh b/bin/test/run-api-tests.sh index b96cf671..ffc152b7 100755 --- a/bin/test/run-api-tests.sh +++ b/bin/test/run-api-tests.sh @@ -6,6 +6,8 @@ export TEST_RUNTIME="${TEST_RUNTIME:-"rr"}" # rr is the only runtime currently s export DB_DRIVER="${DB_DRIVER:-"postgres"}" export GENERATE_COVERAGE="${GENERATE_COVERAGE:-"no"}" +[ "$GENERATE_COVERAGE" != 'no' ] && export XDEBUG_MODE=coverage + # Reset logs OUTPUT_LOGS=data/log/api-tests/output.log rm -rf data/log/api-tests diff --git a/composer.json b/composer.json index 8c85e1eb..013f03ee 100644 --- a/composer.json +++ b/composer.json @@ -120,11 +120,11 @@ "@parallel test:api test:cli" ], "test:unit": "COLUMNS=120 vendor/bin/phpunit --order-by=random --testdox --testdox-summary", - "test:unit:ci": "@test:unit --coverage-php=build/coverage-unit.cov", - "test:unit:pretty": "@test:unit --coverage-html build/coverage-unit/coverage-html", + "test:unit:ci": "XDEBUG_MODE=coverage composer test:unit -- --coverage-php=build/coverage-unit.cov", + "test:unit:pretty": "XDEBUG_MODE=coverage composer test:unit -- --coverage-html build/coverage-unit/coverage-html", "test:db": "@parallel test:db:sqlite:ci test:db:mysql test:db:maria test:db:postgres test:db:ms", "test:db:sqlite": "APP_ENV=test php vendor/bin/phpunit --order-by=random --testdox --testdox-summary -c phpunit-db.xml", - "test:db:sqlite:ci": "@test:db:sqlite --coverage-php build/coverage-db.cov", + "test:db:sqlite:ci": "XDEBUG_MODE=coverage composer test:db:sqlite -- --coverage-php build/coverage-db.cov", "test:db:mysql": "DB_DRIVER=mysql composer test:db:sqlite -- $*", "test:db:maria": "DB_DRIVER=maria composer test:db:sqlite -- $*", "test:db:postgres": "DB_DRIVER=postgres composer test:db:sqlite -- $*", @@ -137,8 +137,8 @@ "test:api:ci": "GENERATE_COVERAGE=yes composer test:api && vendor/bin/phpcov merge build/coverage-api --php build/coverage-api.cov && rm build/coverage-api/*.cov", "test:api:pretty": "GENERATE_COVERAGE=yes composer test:api && vendor/bin/phpcov merge build/coverage-api --html build/coverage-api/coverage-html && rm build/coverage-api/*.cov", "test:cli": "APP_ENV=test DB_DRIVER=maria TEST_ENV=cli php vendor/bin/phpunit --order-by=random --testdox --testdox-summary -c phpunit-cli.xml", - "test:cli:ci": "GENERATE_COVERAGE=yes composer test:cli && vendor/bin/phpcov merge build/coverage-cli --php build/coverage-cli.cov && rm build/coverage-cli/*.cov", - "test:cli:pretty": "GENERATE_COVERAGE=yes composer test:cli && vendor/bin/phpcov merge build/coverage-cli --html build/coverage-cli/coverage-html && rm build/coverage-cli/*.cov", + "test:cli:ci": "XDEBUG_MODE=coverage GENERATE_COVERAGE=yes composer test:cli && vendor/bin/phpcov merge build/coverage-cli --php build/coverage-cli.cov && rm build/coverage-cli/*.cov", + "test:cli:pretty": "XDEBUG_MODE=coverage GENERATE_COVERAGE=yes composer test:cli && vendor/bin/phpcov merge build/coverage-cli --html build/coverage-cli/coverage-html && rm build/coverage-cli/*.cov", "swagger:validate": "php-openapi validate docs/swagger/swagger.json", "swagger:inline": "php-openapi inline docs/swagger/swagger.json docs/swagger/swagger-inlined.json", "clean:dev": "rm -f data/database.sqlite && rm -f config/params/generated_config.php" diff --git a/data/infra/php.Dockerfile b/data/infra/php.Dockerfile index 20732e3f..4a7904bf 100644 --- a/data/infra/php.Dockerfile +++ b/data/infra/php.Dockerfile @@ -46,12 +46,13 @@ RUN mkdir -p /usr/src/php/ext/apcu \ && rm /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini \ && echo extension=apcu.so > /usr/local/etc/php/conf.d/20-php-ext-apcu.ini -# Install pcov and sqlsrv driver -RUN wget https://download.microsoft.com/download/${MS_ODBC_DOWNLOAD}/msodbcsql${MS_ODBC_SQL_VERSION}-1_amd64.apk && \ +# Install xdebug and sqlsrv driver +RUN apk add --update linux-headers && \ + wget https://download.microsoft.com/download/${MS_ODBC_DOWNLOAD}/msodbcsql${MS_ODBC_SQL_VERSION}-1_amd64.apk && \ apk add --allow-untrusted msodbcsql${MS_ODBC_SQL_VERSION}-1_amd64.apk && \ apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS unixodbc-dev && \ - pecl install pdo_sqlsrv-${PDO_SQLSRV_VERSION} pcov && \ - docker-php-ext-enable pdo_sqlsrv pcov && \ + pecl install pdo_sqlsrv-${PDO_SQLSRV_VERSION} xdebug && \ + docker-php-ext-enable pdo_sqlsrv xdebug && \ apk del .phpize-deps && \ rm msodbcsql${MS_ODBC_SQL_VERSION}-1_amd64.apk diff --git a/data/infra/php.ini b/data/infra/php.ini index 46ad43bb..ba8b1620 100644 --- a/data/infra/php.ini +++ b/data/infra/php.ini @@ -3,5 +3,3 @@ error_reporting=-1 log_errors_max_len=0 zend.assertions=1 assert.exception=1 -pcov.enabled=1 -pcov.directory=module diff --git a/data/infra/roadrunner.Dockerfile b/data/infra/roadrunner.Dockerfile index 006aea91..2cb660d2 100644 --- a/data/infra/roadrunner.Dockerfile +++ b/data/infra/roadrunner.Dockerfile @@ -46,12 +46,13 @@ RUN mkdir -p /usr/src/php/ext/apcu \ && rm /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini \ && echo extension=apcu.so > /usr/local/etc/php/conf.d/20-php-ext-apcu.ini -# Install pcov and sqlsrv driver -RUN wget https://download.microsoft.com/download/${MS_ODBC_DOWNLOAD}/msodbcsql${MS_ODBC_SQL_VERSION}-1_amd64.apk && \ +# Install xdebug and sqlsrv driver +RUN apk add --update linux-headers && \ + wget https://download.microsoft.com/download/${MS_ODBC_DOWNLOAD}/msodbcsql${MS_ODBC_SQL_VERSION}-1_amd64.apk && \ apk add --allow-untrusted msodbcsql${MS_ODBC_SQL_VERSION}-1_amd64.apk && \ apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS unixodbc-dev && \ - pecl install pdo_sqlsrv-${PDO_SQLSRV_VERSION} pcov && \ - docker-php-ext-enable pdo_sqlsrv pcov && \ + pecl install pdo_sqlsrv-${PDO_SQLSRV_VERSION} xdebug && \ + docker-php-ext-enable pdo_sqlsrv xdebug && \ apk del .phpize-deps && \ rm msodbcsql${MS_ODBC_SQL_VERSION}-1_amd64.apk