diff --git a/.github/workflows/database-tests.yml b/.github/workflows/database-tests.yml new file mode 100644 index 0000000000000..37dddcccc3062 --- /dev/null +++ b/.github/workflows/database-tests.yml @@ -0,0 +1,345 @@ +name: Database Tests + +on: + push: + branches: + - master + - trunk + - '3.[7-9]' + - '[4-9].[0-9]' + tags: + - '3.[7-9]*' + - '[4-9].[0-9]*' + pull_request: + branches: + - master + - trunk + - '3.[7-9]' + - '[4-9].[0-9]' + workflow_dispatch: + # Once weekly On Sundays at 00:00 UTC. + schedule: + - cron: '0 0 * * 0' + +# Cancels all previous workflow runs for pull requests that have not completed. +concurrency: + # The concurrency group contains the workflow name and the branch name for pull requests + # or the commit hash for any other events. + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} + cancel-in-progress: true + +env: + PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }} + COMPOSER_INSTALL: ${{ false }} + # Controls which NPM script to use for running PHPUnit tests. Options ar `php` and `php-composer`. + PHPUNIT_SCRIPT: php + LOCAL_PHP_MEMCACHED: ${{ false }} + +jobs: + # Runs the PHPUnit tests for WordPress on MySQL. + # + # Performs the following steps: + # - Set environment variables. + # - Sets up the environment variables needed for testing with memcached (if desired). + # - Installs NodeJS 14. + # - Sets up caching for NPM. + # - Installs NPM dependencies + # - Configures caching for Composer. + # - Installs Composer dependencies (if desired). + # - Logs Docker debug information (about both the Docker installation within the runner). + # - Starts the WordPress Docker container. + # - Starts the memcached server after the Docker network has been created (if desired). + # - Logs WordPress Docker container debug information. + # - Logs debug general information. + # - Logs the running Docker containers. + # - Logs debug information about what's installed within the WordPress Docker containers. + # - Install WordPress within the Docker container. + # - Run the PHPUnit tests. + # - Checks out the WordPress Test reporter repository. + # - Reconnect the directory to the Git repository. + # - Submit the test results to the WordPress.org host test results. + # - todo: Configure Slack notifications for failing tests. + test-mysql: + name: ${{ matrix.php }}${{ matrix.multisite && ' multisite' || '' }}${{ matrix.memcached && ' with memcached' || '' }} with MySQL ${{ matrix.mysql }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} + strategy: + fail-fast: false + matrix: + php: [ '5.6.20', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0' ] + mysql: [ '5.6', '5.7', '8.0' ] + os: [ ubuntu-latest ] + memcached: [ false ] + multisite: [ false, true ] + include: + # Include jobs for PHP 7.4 with memcached. + - php: '7.4' + mysql: '8.0' + os: ubuntu-latest + memcached: true + multisite: false + - php: '7.4' + mysql: '8.0' + os: ubuntu-latest + memcached: true + multisite: true + exclude: + # Exclude jobs for PHP 5.6/MySQL 8.0. + - php: '5.6.20' + mysql: '8.0' + os: ubuntu-latest + multisite: false + - php: '5.6.20' + mysql: '8.0' + os: ubuntu-latest + multisite: true + + env: + LOCAL_PHP: ${{ matrix.php }}-fpm + LOCAL_PHP_MEMCACHED: ${{ matrix.memcached }} + LOCAL_DB_TYPE: mysql + LOCAL_DB_VERSION: ${{ matrix.mysql }} + PHPUNIT_CONFIG: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }} + + steps: + - name: Configure environment variables + run: | + echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV + echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV + + - name: Checkout repository + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + + - name: Install NodeJS + uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5 + with: + node-version: 14 + + - name: Use cached Node modules + uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + + - name: Install Dependencies + run: npm ci + + - name: Get composer cache directory + id: composer-cache + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache Composer dependencies + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4 + env: + cache-name: cache-composer-dependencies + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} + + - name: Install Composer dependencies + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + run: | + docker-compose run --rm php composer --version + + # The PHPUnit 7.x phar is not compatible with PHP 8 and won't be updated, + # as PHPUnit 7 is no longer supported. The Composer-installed PHPUnit should be + # used for PHP 8 testing instead. + if [ ${{ env.LOCAL_PHP }} == '8.0-fpm' ]; then + docker-compose run --rm php composer install --ignore-platform-reqs + echo "PHPUNIT_SCRIPT=php-composer" >> $GITHUB_ENV + else + docker-compose run --rm php composer install + fi + + - name: Docker debug information + run: | + docker -v + docker-compose -v + + - name: Start Docker environment + run: | + npm run env:start + + # The memcached server needs to start after the Docker network has been set up with `npm run env:start`. + - name: Start the Memcached server. + if: ${{ matrix.memcached }} + run: | + cp tests/phpunit/includes/object-cache.php src/wp-content/object-cache.php + docker run --name memcached --net $(basename "$PWD")_wpdevnet -d memcached + + - name: General debug information + run: | + npm --version + node --version + curl --version + git --version + svn --version + + - name: Log running Docker containers + run: docker ps -a + + - name: WordPress Docker container debug information + run: | + docker-compose run --rm mysql mysql --version + docker-compose run --rm php php --version + docker-compose run --rm php php -m + docker-compose run --rm php php -i + docker-compose run --rm php locale -a + + - name: Install WordPress + run: npm run env:install + + - name: Run database tests + run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group wpdb,dbDelta,query,compat + + # + # Performs the following steps: + # - Set environment variables. + # - Sets up the environment variables needed for testing with memcached (if desired). + # - Installs NodeJS 14. + # - Sets up caching for NPM. + # - Installs NPM dependencies + # - Configures caching for Composer. + # - Installs Composer dependencies (if desired). + # - Logs Docker debug information (about both the Docker installation within the runner). + # - Starts the WordPress Docker container. + # - Starts the memcached server after the Docker network has been created (if desired). + # - Logs WordPress Docker container debug information. + # - Logs debug general information. + # - Logs the running Docker containers. + # - Logs debug information about what's installed within the WordPress Docker containers. + # - Install WordPress within the Docker container. + # - Run the PHPUnit tests. + # - Checks out the WordPress Test reporter repository. + # - Reconnect the directory to the Git repository. + # - Submit the test results to the WordPress.org host test results. + # - todo: Configure Slack notifications for failing tests. + test-mariadb: + name: ${{ matrix.php }}${{ matrix.multisite && ' multisite' || '' }}${{ matrix.memcached && ' with memcached' || '' }} with MariaDB ${{ matrix.mariadb }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} + strategy: + fail-fast: false + matrix: + php: [ '5.6.20', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0' ] + mariadb: [ '10.1', '10.2', '10.3', '10.4', '10.5', '10.6' ] + os: [ ubuntu-latest ] + memcached: [ false ] + multisite: [ false, true ] + include: + # Include jobs for PHP 7.4 with memcached. + - php: '7.4' + os: ubuntu-latest + memcached: true + multisite: false + - php: '7.4' + os: ubuntu-latest + memcached: true + multisite: true + env: + LOCAL_PHP: ${{ matrix.php }}-fpm + LOCAL_PHP_MEMCACHED: ${{ matrix.memcached }} + LOCAL_DB_TYPE: mariadb + LOCAL_DB_VERSION: ${{ matrix.mariadb }} + PHPUNIT_CONFIG: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }} + + steps: + - name: Configure environment variables + run: | + echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV + echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV + + - name: Checkout repository + uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4 + + - name: Install NodeJS + uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5 + with: + node-version: 14 + + - name: Use cached Node modules + uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + + - name: Install Dependencies + run: npm ci + + - name: Get composer cache directory + id: composer-cache + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache Composer dependencies + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4 + env: + cache-name: cache-composer-dependencies + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} + + - name: Install Composer dependencies + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + run: | + docker-compose run --rm php composer --version + + # The PHPUnit 7.x phar is not compatible with PHP 8 and won't be updated, + # as PHPUnit 7 is no longer supported. The Composer-installed PHPUnit should be + # used for PHP 8 testing instead. + if [ ${{ env.LOCAL_PHP }} == '8.0-fpm' ]; then + docker-compose run --rm php composer install --ignore-platform-reqs + echo "PHPUNIT_SCRIPT=php-composer" >> $GITHUB_ENV + else + docker-compose run --rm php composer install + fi + + - name: Docker debug information + run: | + docker -v + docker-compose -v + + - name: Start Docker environment + run: | + npm run env:start + + # The memcached server needs to start after the Docker network has been set up with `npm run env:start`. + - name: Start the Memcached server. + if: ${{ matrix.memcached }} + run: | + cp tests/phpunit/includes/object-cache.php src/wp-content/object-cache.php + docker run --name memcached --net $(basename "$PWD")_wpdevnet -d memcached + + - name: General debug information + run: | + npm --version + node --version + curl --version + git --version + svn --version + + - name: Log running Docker containers + run: docker ps -a + + - name: WordPress Docker container debug information + run: | + docker-compose run --rm mysql mysql --version + docker-compose run --rm php php --version + docker-compose run --rm php php -m + docker-compose run --rm php php -i + docker-compose run --rm php locale -a + + - name: Install WordPress + run: npm run env:install + + - name: Run database tests + run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group wpdb,dbDelta,query,compat diff --git a/.github/workflows/expanded-db-testing.yml b/.github/workflows/expanded-db-testing.yml new file mode 100644 index 0000000000000..ca78b93a513ef --- /dev/null +++ b/.github/workflows/expanded-db-testing.yml @@ -0,0 +1,374 @@ +name: Expanded Database Testing + +on: + pull_request: + # Once weekly On Sundays at 00:00 UTC. + schedule: + - cron: '0 0 * * 0' + +env: + LOCAL_DIR: build + PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }} + COMPOSER_INSTALL: ${{ false }} + # Controls which NPM script to use for running PHPUnit tests. Options ar `php` and `php-composer`. + PHPUNIT_SCRIPT: php + LOCAL_PHP_MEMCACHED: ${{ false }} + +jobs: + # Sets up WordPress for testing or development use. + # + # Performs the following steps: + # - Cancels all previous workflow runs for pull requests that have not completed. + # - Checks out the repository. + # - Checks out the WordPress Importer plugin (needed for the Core PHPUnit tests). + # - Logs debug information about the runner container. + # - Installs NodeJS 14. + # - Sets up caching for NPM. + # _ Installs NPM dependencies using install-changed to hash the `package.json` file. + # - Builds WordPress to run from the `build` directory. + # - Creates a ZIP file of compiled WordPress. + # - Uploads ZIP file as an artifact. + setup-wordpress: + name: Setup WordPress + runs-on: ubuntu-latest + if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} + + steps: + - name: Cancel previous runs of this workflow (pull requests only) + if: ${{ github.event_name == 'pull_request' }} + uses: styfle/cancel-workflow-action@0.5.0 + with: + access_token: ${{ github.token }} + + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Checkout the WordPress Importer plugin + run: svn checkout -r 2387243 https://plugins.svn.wordpress.org/wordpress-importer/trunk/ tests/phpunit/data/plugins/wordpress-importer + + - name: Log debug information + run: | + echo "$GITHUB_REF" + echo "$GITHUB_EVENT_NAME" + npm --version + node --version + curl --version + git --version + svn --version + php --version + php -i + locale -a + + - name: Install NodeJS + uses: actions/setup-node@v1 + with: + node-version: 14 + + - name: Cache NodeJS modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-npm- + + - name: Install Dependencies + run: npx install-changed --install-command="npm ci" + + - name: Build WordPress + run: npm run build + + - name: Create ZIP artifact + uses: thedoctor0/zip-release@0.4.1 + with: + filename: built-wp-${{ github.sha }}.zip + exclusions: '*.git* /*node_modules/* packagehash.txt' + + - name: Upload build artifact + uses: actions/upload-artifact@v2 + with: + name: built-wp-${{ github.sha }} + path: built-wp-${{ github.sha }}.zip + if-no-files-found: error + + # Runs the PHPUnit tests for WordPress. + # + # Performs the following steps: + # - Set environment variables. + # - Downloads the built WordPress artifact from the previous job. + # - Unzips the artifact. + # - Installs NodeJS 14. + # - Sets up caching for NPM. + # _ Installs NPM dependencies using install-changed to hash the `package.json` file. + # - Configures caching for Composer. + # _ Installs Composer dependencies (if desired). + # - Logs Docker debug information (about both the Docker installation within the runner). + # - Starts the WordPress Docker container. + # - Logs WordPress Docker container debug information. + # - Logs debug general information. + # - Logs the running Docker containers. + # - Logs debug information about what's installed within the WordPress Docker containers. + # - Install WordPress within the Docker container. + # - Run the PHPUnit tests. + # - Checks out the WordPress Test reporter repository. + # - Reconnect the directory to the Git repository. + # - Submit the test results to the WordPress.org host test results. + # - todo: Configure Slack notifications for failing tests. + test-mysql: + name: PHP ${{ matrix.php }} with MySQL ${{ matrix.db_version }} + needs: setup-wordpress + runs-on: ${{ matrix.os }} + strategy: + matrix: + php: [ '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6.20' ] + os: [ ubuntu-latest ] + db_type: [ 'mysql' ] + db_version: [ '5.6', '5.7', '8.0' ] + env: + LOCAL_PHP: ${{ matrix.php }}-fpm + LOCAL_DB_TYPE: ${{ matrix.db_type }} + LOCAL_DB_VERSION: ${{ matrix.db_version }} + + steps: + - name: Configure environment variables + run: | + echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV + echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV + + - name: Download the built WordPress artifact + uses: actions/download-artifact@v2 + with: + name: built-wp-${{ github.sha }} + + - name: Unzip built artifact + run: unzip built-wp-${{ github.sha }}.zip + + - name: Install NodeJS + uses: actions/setup-node@v1 + with: + node-version: 14 + + - name: Use cached Node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-npm- + + - name: Install Dependencies + run: npx install-changed --install-command="npm ci" + + - name: Get composer cache directory + id: composer-cache + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache Composer dependencies + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + uses: actions/cache@v2 + env: + cache-name: cache-composer-dependencies + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-composer- + + - name: Install Composer dependencies + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + run: | + docker-compose run --rm php composer --version + + # The PHPUnit 7.x phar is not compatible with PHP 8 and won't be updated, + # as PHPUnit 7 is no longer supported. The Composer-installed PHPUnit should be + # used for PHP 8 testing instead. + if [ ${{ env.LOCAL_PHP }} == '8.0-fpm' ]; then + docker-compose run --rm php composer install --ignore-platform-reqs + echo "PHPUNIT_SCRIPT=php-composer" >> $GITHUB_ENV + else + docker-compose run --rm php composer install + fi + + - name: Docker debug information + run: | + docker -v + docker-compose -v + + - name: Start Docker environment + run: | + npm run env:start + + - name: General debug information + run: | + npm --version + node --version + curl --version + git --version + svn --version + + - name: Log running Docker containers + run: docker ps -a + + - name: WordPress Docker container debug information + run: | + docker-compose run --rm mysql mysql --version + docker-compose run --rm php php --version + docker-compose run --rm php php -m + docker-compose run --rm php php -i + docker-compose run --rm php locale -a + + - name: Install WordPress + run: npm run env:install + + - name: Run PHPUnit tests + run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist + + - name: Run tests as a multisite install + run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c tests/phpunit/multisite.xml + + + # Runs the PHPUnit tests for WordPress. + # + # Performs the following steps: + # - Set environment variables. + # - Downloads the built WordPress artifact from the previous job. + # - Unzips the artifact. + # - Installs NodeJS 14. + # - Sets up caching for NPM. + # _ Installs NPM dependencies using install-changed to hash the `package.json` file. + # - Configures caching for Composer. + # _ Installs Composer dependencies (if desired). + # - Logs Docker debug information (about both the Docker installation within the runner). + # - Starts the WordPress Docker container. + # - Logs WordPress Docker container debug information. + # - Logs debug general information. + # - Logs the running Docker containers. + # - Logs debug information about what's installed within the WordPress Docker containers. + # - Install WordPress within the Docker container. + # - Run the PHPUnit tests. + # - Checks out the WordPress Test reporter repository. + # - Reconnect the directory to the Git repository. + # - Submit the test results to the WordPress.org host test results. + # - todo: Configure Slack notifications for failing tests. + test-mariadb: + name: PHP ${{ matrix.php }} with MariaDB ${{ matrix.db_version }} + needs: setup-wordpress + runs-on: ${{ matrix.os }} + strategy: + matrix: + php: [ '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6.20' ] + os: [ ubuntu-latest ] + db_type: [ 'mysql' ] + db_version: [ '10.5', '10.4', '10.3', '10.2', '10.1' ] + env: + LOCAL_PHP: ${{ matrix.php }}-fpm + LOCAL_DB_TYPE: ${{ matrix.db_type }} + LOCAL_DB_VERSION: ${{ matrix.db_version }} + + steps: + - name: Configure environment variables + run: | + echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV + echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV + + - name: Download the built WordPress artifact + uses: actions/download-artifact@v2 + with: + name: built-wp-${{ github.sha }} + + - name: Unzip built artifact + run: unzip built-wp-${{ github.sha }}.zip + + - name: Install NodeJS + uses: actions/setup-node@v1 + with: + node-version: 14 + + - name: Use cached Node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-npm- + + - name: Install Dependencies + run: npx install-changed --install-command="npm ci" + + - name: Get composer cache directory + id: composer-cache + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache Composer dependencies + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + uses: actions/cache@v2 + env: + cache-name: cache-composer-dependencies + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-composer- + + - name: Install Composer dependencies + if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }} + run: | + docker-compose run --rm php composer --version + + # The PHPUnit 7.x phar is not compatible with PHP 8 and won't be updated, + # as PHPUnit 7 is no longer supported. The Composer-installed PHPUnit should be + # used for PHP 8 testing instead. + if [ ${{ env.LOCAL_PHP }} == '8.0-fpm' ]; then + docker-compose run --rm php composer install --ignore-platform-reqs + echo "PHPUNIT_SCRIPT=php-composer" >> $GITHUB_ENV + else + docker-compose run --rm php composer install + fi + + - name: Docker debug information + run: | + docker -v + docker-compose -v + + - name: Start Docker environment + run: | + npm run env:start + + - name: General debug information + run: | + npm --version + node --version + curl --version + git --version + svn --version + + - name: Log running Docker containers + run: docker ps -a + + - name: WordPress Docker container debug information + run: | + docker-compose run --rm mysql mysql --version + docker-compose run --rm php php --version + docker-compose run --rm php php -m + docker-compose run --rm php php -i + docker-compose run --rm php locale -a + + - name: Install WordPress + run: npm run env:install + + - name: Run PHPUnit tests + run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist + + - name: Run tests as a multisite install + run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c tests/phpunit/multisite.xml