Make WordPress Core

Changeset 53552


Ignore:
Timestamp:
06/21/2022 11:45:19 PM (2 years ago)
Author:
desrosj
Message:

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.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/.env

    r53071 r53552  
    1818LOCAL_PHP=latest
    1919
    20 # Whether or not to enable XDebug.
     20# Whether or not to enable Xdebug.
    2121LOCAL_PHP_XDEBUG=false
     22
     23##
     24# The Xdebug features to enable.
     25#
     26# By default, the following features are enabled in the local environment:
     27# - Development helpers (`develop`).
     28# - Step debugging (`debug`).
     29#
     30# To generate a code coverage report, `coverage` mode must be active.
     31#
     32# For a full list of accepted values, see https://xdebug.org/docs/all_settings#mode.
     33##
     34LOCAL_PHP_XDEBUG_MODE=develop,debug
    2235
    2336# Whether or not to enable Memcached.
  • trunk/.github/workflows/test-coverage.yml

    r53112 r53552  
    2020  LOCAL_PHP: '7.4-fpm'
    2121  LOCAL_PHP_XDEBUG: true
     22  LOCAL_PHP_XDEBUG_MODE: 'coverage'
    2223  LOCAL_PHP_MEMCACHED: ${{ false }}
    2324
  • trunk/docker-compose.yml

    r53349 r53552  
    3939    environment:
    4040      - LOCAL_PHP_XDEBUG=${LOCAL_PHP_XDEBUG-false}
     41      - XDEBUG_MODE=${LOCAL_PHP_XDEBUG_MODE-develop,debug}
    4142      - LOCAL_PHP_MEMCACHED=${LOCAL_PHP_MEMCACHED-false}
    4243      - PHP_FPM_UID=${PHP_FPM_UID-1000}
Note: See TracChangeset for help on using the changeset viewer.