diff --git a/packages/env/CHANGELOG.md b/packages/env/CHANGELOG.md index f972ba1355755c..396e0167f1e921 100644 --- a/packages/env/CHANGELOG.md +++ b/packages/env/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Enhancements + +- Add a `WP_ENV_MULTISITE` environment variable to override the `multisite` option ([#68792](https://github.com/WordPress/gutenberg/pull/68792)). + ## 10.16.0 (2025-01-15) ## 10.15.0 (2025-01-02) diff --git a/packages/env/README.md b/packages/env/README.md index 467e8d44e7135d..16bba5cba20c07 100644 --- a/packages/env/README.md +++ b/packages/env/README.md @@ -709,6 +709,17 @@ You can tell `wp-env` to use a specific PHP version for compatibility and testin } ``` +### Multisite support + +You can tell `wp-env` if the site should be multisite enabled. This can also be set via the environment variable `WP_ENV_MULTISITE`. + +```json +{ + "multisite": true, + "plugins": [ "." ] +} +``` + ### Node Lifecycle Script This is useful for performing some actions after setting up the environment, such as bootstrapping an E2E test environment. diff --git a/packages/env/lib/config/get-config-from-environment-vars.js b/packages/env/lib/config/get-config-from-environment-vars.js index 618b5fff257920..30c7b3e58eece4 100644 --- a/packages/env/lib/config/get-config-from-environment-vars.js +++ b/packages/env/lib/config/get-config-from-environment-vars.js @@ -23,6 +23,7 @@ const { checkPort, checkVersion, checkString } = require( './validate-config' ); * @property {?number} phpmyadminPort An override for the development environment's phpMyAdmin port. * @property {?WPSource} coreSource An override for all environment's coreSource. * @property {?string} phpVersion An override for all environment's PHP version. + * @property {?boolean} multisite An override for if environmen should be multisite. * @property {?Object.} lifecycleScripts An override for various lifecycle scripts. */ @@ -68,6 +69,10 @@ module.exports = function getConfigFromEnvironmentVars( cacheDirectoryPath ) { environmentConfig.phpVersion = process.env.WP_ENV_PHP_VERSION; } + if ( process.env.WP_ENV_MULTISITE ) { + environmentConfig.multisite = !! process.env.WP_ENV_MULTISITE; + } + return environmentConfig; };