From c40b46525c6bbdfa80ab19bf9e1763c458f95118 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers Date: Tue, 21 Jun 2022 23:45:19 +0000 Subject: [PATCH] Build/Test Tools: Configure Xdebug modes in the local Docker environment. One change in the update from Xdebug version 2.x to 3.x was a shift from enabling features to switching into modes. When the version of Xdebug installed in the PHP 7.4 Docker container was updated from 2.x to 3.x, the code coverage reporting workflow stopped generating reports due to a lack of available coverage drivers. This change adds the `XDEBUG_MODE` environment variable to the local Docker environment configuration to allow the active modes to be changed. This environment variable takes precedence over the `xdebug.mode` setting, but will not change the value of the `xdebug.mode` setting. The `LOCAL_PHP_XDEBUG_MODE` environment variable has been added to the `.env` file and can be used to change the modes enabled in the Docker container. The code coverage reporting workflow uses this variable to enable the `coverage` mode, which is required for generating a test coverage report. By default, `debug` and `debug modes are active, which enables the more commonly used features of Xdebug: development helpers and step debugging. Props afragen, johnbillion, desrosj. Fixes #56022. git-svn-id: https://develop.svn.wordpress.org/trunk@53552 602fd350-edb4-49c9-b593-d223f7449a82 --- .env | 15 ++++++++++++++- .github/workflows/test-coverage.yml | 1 + docker-compose.yml | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.env b/.env index 9affb93f53..7cbb06145a 100644 --- a/.env +++ b/.env @@ -17,9 +17,22 @@ LOCAL_DIR=src # The PHP version to use. Valid options are 'latest', and '{version}-fpm'. LOCAL_PHP=latest -# Whether or not to enable XDebug. +# Whether or not to enable Xdebug. LOCAL_PHP_XDEBUG=false +## +# The Xdebug features to enable. +# +# By default, the following features are enabled in the local environment: +# - Development helpers (`develop`). +# - Step debugging (`debug`). +# +# To generate a code coverage report, `coverage` mode must be active. +# +# For a full list of accepted values, see https://xdebug.org/docs/all_settings#mode. +## +LOCAL_PHP_XDEBUG_MODE=develop,debug + # Whether or not to enable Memcached. LOCAL_PHP_MEMCACHED=false diff --git a/.github/workflows/test-coverage.yml b/.github/workflows/test-coverage.yml index f1b08567cd..a6dc207563 100644 --- a/.github/workflows/test-coverage.yml +++ b/.github/workflows/test-coverage.yml @@ -19,6 +19,7 @@ env: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }} LOCAL_PHP: '7.4-fpm' LOCAL_PHP_XDEBUG: true + LOCAL_PHP_XDEBUG_MODE: 'coverage' LOCAL_PHP_MEMCACHED: ${{ false }} jobs: diff --git a/docker-compose.yml b/docker-compose.yml index 060fd130e9..efcd0cd5c7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,6 +38,7 @@ services: environment: - LOCAL_PHP_XDEBUG=${LOCAL_PHP_XDEBUG-false} + - XDEBUG_MODE=${LOCAL_PHP_XDEBUG_MODE-develop,debug} - LOCAL_PHP_MEMCACHED=${LOCAL_PHP_MEMCACHED-false} - PHP_FPM_UID=${PHP_FPM_UID-1000} - PHP_FPM_GID=${PHP_FPM_GID-1000}