mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
This switches to using Git in the local Docker environment install script to check out a copy of the WordPress Importer plugin for use in unit tests. Previously, SVN was used and the commands were not correctly run within the Docker container. The container does not actually have SVN installed, and the script was only working when the machine running the command had SVN present. Props czapla, alexstine, jnylen0, francina, desrosj. Fixes #52909. git-svn-id: https://develop.svn.wordpress.org/trunk@51179 602fd350-edb4-49c9-b593-d223f7449a82
60 lines
2.7 KiB
JavaScript
60 lines
2.7 KiB
JavaScript
const dotenv = require( 'dotenv' );
|
|
const dotenvExpand = require( 'dotenv-expand' );
|
|
const wait_on = require( 'wait-on' );
|
|
const { execSync } = require( 'child_process' );
|
|
const { renameSync, readFileSync, writeFileSync } = require( 'fs' );
|
|
|
|
dotenvExpand( dotenv.config() );
|
|
|
|
// Create wp-config.php.
|
|
wp_cli( 'config create --dbname=wordpress_develop --dbuser=root --dbpass=password --dbhost=mysql --path=/var/www/src --force' );
|
|
|
|
// Add the debug settings to wp-config.php.
|
|
// Windows requires this to be done as an additional step, rather than using the --extra-php option in the previous step.
|
|
wp_cli( `config set WP_DEBUG ${process.env.LOCAL_WP_DEBUG} --raw --type=constant` );
|
|
wp_cli( `config set WP_DEBUG_LOG ${process.env.LOCAL_WP_DEBUG_LOG} --raw --type=constant` );
|
|
wp_cli( `config set WP_DEBUG_DISPLAY ${process.env.LOCAL_WP_DEBUG_DISPLAY} --raw --type=constant` );
|
|
wp_cli( `config set SCRIPT_DEBUG ${process.env.LOCAL_SCRIPT_DEBUG} --raw --type=constant` );
|
|
wp_cli( `config set WP_ENVIRONMENT_TYPE ${process.env.LOCAL_WP_ENVIRONMENT_TYPE} --type=constant` );
|
|
|
|
// Move wp-config.php to the base directory, so it doesn't get mixed up in the src or build directories.
|
|
renameSync( 'src/wp-config.php', 'wp-config.php' );
|
|
|
|
install_wp_importer();
|
|
|
|
// Read in wp-tests-config-sample.php, edit it to work with our config, then write it to wp-tests-config.php.
|
|
const testConfig = readFileSync( 'wp-tests-config-sample.php', 'utf8' )
|
|
.replace( 'youremptytestdbnamehere', 'wordpress_develop_tests' )
|
|
.replace( 'yourusernamehere', 'root' )
|
|
.replace( 'yourpasswordhere', 'password' )
|
|
.replace( 'localhost', 'mysql' )
|
|
.concat( "\ndefine( 'FS_METHOD', 'direct' );\n" );
|
|
|
|
writeFileSync( 'wp-tests-config.php', testConfig );
|
|
|
|
// Once the site is available, install WordPress!
|
|
wait_on( { resources: [ `tcp:localhost:${process.env.LOCAL_PORT}`] } )
|
|
.then( () => {
|
|
wp_cli( 'db reset --yes' );
|
|
wp_cli( `core install --title="WordPress Develop" --admin_user=admin --admin_password=password --admin_email=test@test.com --skip-email --url=http://localhost:${process.env.LOCAL_PORT}` );
|
|
} );
|
|
|
|
/**
|
|
* Runs WP-CLI commands in the Docker environment.
|
|
*
|
|
* @param {string} cmd The WP-CLI command to run.
|
|
*/
|
|
function wp_cli( cmd ) {
|
|
execSync( `docker-compose run --rm cli ${cmd}`, { stdio: 'inherit' } );
|
|
}
|
|
|
|
/**
|
|
* Downloads the WordPress Importer plugin for use in tests.
|
|
*/
|
|
function install_wp_importer() {
|
|
const testPluginDirectory = 'tests/phpunit/data/plugins/wordpress-importer';
|
|
|
|
execSync( `docker-compose exec -T php rm -rf ${testPluginDirectory}`, { stdio: 'inherit' } );
|
|
execSync( `docker-compose exec -T php git clone https://github.com/WordPress/wordpress-importer.git ${testPluginDirectory} --depth=1`, { stdio: 'inherit' } );
|
|
}
|