bin/setup-phpunit-env.sh
#!/bin/bash
# credit: "https://github.com/WordPress/gutenberg"
# under GPL license
# Exit if any command fails.
set -e
cd "$(dirname "$0")/.."
. "$(dirname "$0")/bootstrap-env.sh"
# Include useful functions.
. "$(dirname "$0")/includes.sh"
# Check that Docker is installed.
if ! command_exists "docker"; then
echo -e $(error_message "Docker doesn't seem to be installed. Please head on over to the Docker site to download it: $(action_format "https://www.docker.com/community-edition#/download")")
exit 1
fi
# Check that Docker is running.
if ! docker info >/dev/null 2>&1; then
echo -e $(error_message "Docker isn't running. Please check that you've started your Docker app, and see it in your system tray.")
exit 1
fi
# Stop existing containers.
echo -e $(status_message "Stopping Docker containers...")
docker-compose ${DOCKER_COMPOSE_FILE_OPTIONS} down --remove-orphans >/dev/null 2>&1
# Download image updates.
echo -e $(status_message "Downloading Docker image updates...")
docker-compose ${DOCKER_COMPOSE_FILE_OPTIONS} pull
# Launch the containers.
echo -e $(status_message "Starting Docker containers...")
docker-compose ${DOCKER_COMPOSE_FILE_OPTIONS} up -d >/dev/null
# Install the PHPUnit test scaffolding.
echo -e $(status_message "Installing PHPUnit test scaffolding...")
if is_windows; then
WP_TESTS_DIR=../tmp/wordpress-tests-lib
WP_CORE_DIR=../tmp/wordpress
fi
docker-compose ${DOCKER_COMPOSE_FILE_OPTIONS} run --rm wordpress_phpunit dockerize -wait tcp://mysql:3306 -timeout 30s bash ./bin/install-wp-tests.sh vindi_test_unit root password mysql $WP_VERSION false> /dev/null
# Finished Installing!
echo -e "\nTests environment is up!\n"
echo -e "Run $(action_format "npm run test:php") to run phpunit tests."