mirror of
git://develop.git.wordpress.org/
synced 2025-01-17 04:48:25 +01:00
Build/Test Tools: Restore automated testing in the 5.0 branch.
This commit merges the workflow files required to run automated testing on GitHub Actions. In addition, [49836] and [50285] have been included in order to keep the local Docker environment consistent across all branches. Merges [49162,49168-49169,49175,49204,49227-49228,49244,49369,49371,49548,49781-49784,49786,49836,49938,50268,50285,50298] to the 5.0 branch. See #50401. git-svn-id: https://develop.svn.wordpress.org/branches/5.0@50307 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
676c22e235
commit
9f87e92c21
25
.env
25
.env
@ -45,8 +45,22 @@ LOCAL_PHP_XDEBUG=false
|
||||
# Whether or not to enable Memcached.
|
||||
LOCAL_PHP_MEMCACHED=false
|
||||
|
||||
# The MySQL version to use. See https://hub.docker.com/_/mysql/ for valid versions.
|
||||
LOCAL_MYSQL=5.7
|
||||
##
|
||||
# The database software to use.
|
||||
#
|
||||
# Supported values are `mysql` and `mariadb`.
|
||||
##
|
||||
LOCAL_DB_TYPE=mysql
|
||||
|
||||
##
|
||||
# The database version to use.
|
||||
#
|
||||
# Defaults to 5.7 with the assumption that LOCAL_DB_TYPE is set to `mysql` above.
|
||||
#
|
||||
# When using `mysql`, see https://hub.docker.com/_/mysql/ for valid versions.
|
||||
# When using `mariadb`, see https://hub.docker.com/_/mariadb for valid versions.
|
||||
##
|
||||
LOCAL_DB_VERSION=5.7
|
||||
|
||||
# The debug settings to add to `wp-config.php`.
|
||||
LOCAL_WP_DEBUG=true
|
||||
@ -57,3 +71,10 @@ LOCAL_WP_ENVIRONMENT_TYPE=local
|
||||
|
||||
# The URL to use when running e2e tests.
|
||||
WP_BASE_URL=http://localhost:${LOCAL_PORT}
|
||||
|
||||
##
|
||||
# The revision number of the WordPress Importer plugin to use when running unit tests.
|
||||
#
|
||||
# This should be an SVN revision number from the official plugin repository on wordpress.org.
|
||||
##
|
||||
WP_IMPORTER_REVISION=2387243
|
||||
|
73
.github/workflows/coding-standards.yml
vendored
Normal file
73
.github/workflows/coding-standards.yml
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
name: Coding Standards
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
# JSHint was introduced in WordPress 3.8.
|
||||
# PHPCS checking was introduced in WordPress 5.1.
|
||||
- '3.[89]'
|
||||
- '[4-9].[0-9]'
|
||||
tags:
|
||||
- '3.[89]*'
|
||||
- '[4-9].[0-9]*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
# Runs the JavaScript coding standards checks.
|
||||
#
|
||||
# JSHint violations are not currently reported inline with annotations.
|
||||
#
|
||||
# Performs the following steps:
|
||||
# - Checks out the repository.
|
||||
# - Logs debug information about the runner container.
|
||||
# - Installs NodeJS 14.
|
||||
# - Sets up caching for NPM.
|
||||
# - Logs updated debug information.
|
||||
# _ Installs NPM dependencies using install-changed to hash the `package.json` file.
|
||||
# - Run the WordPress JSHint checks.
|
||||
# - todo: Configure Slack notifications for failing tests.
|
||||
jshint:
|
||||
name: JavaScript coding standards
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
||||
env:
|
||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Log debug information
|
||||
run: |
|
||||
npm --version
|
||||
node --version
|
||||
git --version
|
||||
svn --version
|
||||
|
||||
- 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: Log debug information
|
||||
run: |
|
||||
npm --version
|
||||
node --version
|
||||
|
||||
- name: Install Dependencies
|
||||
run: npx install-changed --install-command="npm ci"
|
||||
|
||||
- name: Run JSHint
|
||||
run: npm run grunt jshint
|
119
.github/workflows/end-to-end-tests.yml
vendored
Normal file
119
.github/workflows/end-to-end-tests.yml
vendored
Normal file
@ -0,0 +1,119 @@
|
||||
name: End-to-end Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
# The end to end test suite was introduced in WordPress 5.3.
|
||||
- '5.[3-9]'
|
||||
- '[6-9].[0-9]'
|
||||
tags:
|
||||
- '5.[3-9]*'
|
||||
- '[6-9].[0-9]*'
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
LOCAL_DIR: build
|
||||
|
||||
jobs:
|
||||
# Runs the end-to-end test suite.
|
||||
#
|
||||
# Performs the following steps:
|
||||
# - Cancels all previous workflow runs for pull requests that have not completed.
|
||||
# - Set environment variables.
|
||||
# - Checks out the repository.
|
||||
# - 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.
|
||||
# - Starts the WordPress Docker container.
|
||||
# - Logs general debug information.
|
||||
# - Logs the running Docker containers.
|
||||
# - Logs Docker debug information (about both the Docker installation within the runner and the WordPress container).
|
||||
# - Install WordPress within the Docker container.
|
||||
# - Run the E2E tests.
|
||||
# - todo: Configure Slack notifications for failing tests.
|
||||
e2e-tests:
|
||||
name: E2E Tests
|
||||
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: 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@v2
|
||||
|
||||
- name: Log debug information
|
||||
run: |
|
||||
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: 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: Docker debug information
|
||||
run: |
|
||||
docker -v
|
||||
docker-compose -v
|
||||
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 E2E tests
|
||||
run: npm run test:e2e
|
75
.github/workflows/javascript-tests.yml
vendored
Normal file
75
.github/workflows/javascript-tests.yml
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
name: JavaScript Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
# JavaScript testing was introduced in WordPress 3.8.
|
||||
- '3.[89]'
|
||||
- '[4-9].[0-9]'
|
||||
tags:
|
||||
- '3.[89]*'
|
||||
- '[4-9].[0-9]*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
# Runs the QUnit tests for WordPress.
|
||||
#
|
||||
# Performs the following steps:
|
||||
# - Cancels all previous workflow runs for pull requests that have not completed.
|
||||
# - Checks out the repository.
|
||||
# - Logs debug information about the runner container.
|
||||
# - Installs NodeJS 14.
|
||||
# - Sets up caching for NPM.
|
||||
# - Logs updated debug information.
|
||||
# _ Installs NPM dependencies using install-changed to hash the `package.json` file.
|
||||
# - Run the WordPress QUnit tests.
|
||||
# - todo: Configure Slack notifications for failing tests.
|
||||
test-js:
|
||||
name: QUnit Tests
|
||||
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: Log debug information
|
||||
run: |
|
||||
npm --version
|
||||
node --version
|
||||
git --version
|
||||
svn --version
|
||||
|
||||
- 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: Log debug information
|
||||
run: |
|
||||
npm --version
|
||||
node --version
|
||||
|
||||
- name: Install Dependencies
|
||||
run: npx install-changed --install-command="npm ci"
|
||||
|
||||
- name: Run QUnit tests
|
||||
run: npm run grunt qunit:compiled
|
63
.github/workflows/php-compatibility.yml
vendored
Normal file
63
.github/workflows/php-compatibility.yml
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
name: PHP Compatibility
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
# The PHP compatibility testing was introduced in WordPress 5.5.
|
||||
- '5.[5-9]'
|
||||
- '[6-9].[0-9]'
|
||||
tags:
|
||||
- '5.[5-9]*'
|
||||
- '[6-9].[0-9]*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
|
||||
# Runs PHP compatibility testing.
|
||||
#
|
||||
# Violations are reported inline with annotations.
|
||||
#
|
||||
# Performs the following steps:
|
||||
# - Checks out the repository.
|
||||
# - Sets up PHP.
|
||||
# - Logs debug information about the runner container.
|
||||
# - Installs Composer dependencies (use cache if possible).
|
||||
# - Make Composer packages available globally.
|
||||
# - Logs PHP_CodeSniffer debug information.
|
||||
# - Runs the PHP compatibility tests.
|
||||
# - todo: Configure Slack notifications for failing scans.
|
||||
php-comatibility:
|
||||
name: Check PHP compatibility
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '7.4'
|
||||
coverage: none
|
||||
tools: composer, cs2pr
|
||||
|
||||
- name: Log debug information
|
||||
run: |
|
||||
php --version
|
||||
composer --version
|
||||
|
||||
- name: Install Composer dependencies
|
||||
uses: ramsey/composer-install@v1
|
||||
with:
|
||||
composer-options: "--no-progress --no-ansi --no-interaction"
|
||||
|
||||
- name: Make Composer packages available globally
|
||||
run: echo "${PWD}/vendor/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Log PHPCS debug information
|
||||
run: phpcs -i
|
||||
|
||||
- name: Run PHP compatibility tests
|
||||
run: phpcs --standard=phpcompat.xml.dist -q --report=checkstyle | cs2pr
|
304
.github/workflows/phpunit-tests.yml
vendored
Normal file
304
.github/workflows/phpunit-tests.yml
vendored
Normal file
@ -0,0 +1,304 @@
|
||||
name: PHPUnit Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '3.[7-9]'
|
||||
- '[4-9].[0-9]'
|
||||
tags:
|
||||
- '3.[7-9]*'
|
||||
- '[4-9].[0-9]*'
|
||||
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.
|
||||
# - 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: 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.
|
||||
# - Sets up the environment variables needed for testing with memcached (if desired).
|
||||
# - 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.
|
||||
# - 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-php:
|
||||
name: ${{ matrix.php }}${{ matrix.memcached && ' with memcached' || '' }} on ${{ matrix.os }}
|
||||
needs: setup-wordpress
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
php: [ '7.3' ]
|
||||
phpunit: [ '6-php-7.3' ]
|
||||
os: [ ubuntu-latest ]
|
||||
memcached: [ false ]
|
||||
include:
|
||||
# Include job for PHP 7.3 with memcached.
|
||||
- php: '7.3'
|
||||
phpunit: '6-php-7.3'
|
||||
os: ubuntu-latest
|
||||
memcached: true
|
||||
- php: '7.2'
|
||||
phpunit: '6-php-7.2'
|
||||
os: ubuntu-latest
|
||||
memcached: false
|
||||
- php: '7.1'
|
||||
phpunit: '6-php-7.1'
|
||||
os: ubuntu-latest
|
||||
memcached: false
|
||||
- php: '7.0'
|
||||
phpunit: '6-php-7.0'
|
||||
os: ubuntu-latest
|
||||
memcached: false
|
||||
- php: '5.6'
|
||||
phpunit: '4-php-5.6'
|
||||
os: ubuntu-latest
|
||||
memcached: false
|
||||
- php: '5.5'
|
||||
phpunit: '5.5'
|
||||
os: ubuntu-latest
|
||||
memcached: false
|
||||
- php: '5.4'
|
||||
phpunit: '5.4'
|
||||
os: ubuntu-latest
|
||||
memcached: false
|
||||
- php: '5.3'
|
||||
phpunit: '5.3'
|
||||
os: ubuntu-latest
|
||||
memcached: false
|
||||
env:
|
||||
LOCAL_PHP: ${{ matrix.php }}-fpm
|
||||
LOCAL_PHPUNIT: ${{ matrix.phpunit }}-fpm
|
||||
LOCAL_PHP_MEMCACHED: ${{ matrix.memcached }}
|
||||
|
||||
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: Cache Composer dependencies
|
||||
if: ${{ env.COMPOSER_INSTALL == true }}
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: cache-composer-dependencies
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-php-${{ matrix.php }}-composer-
|
||||
|
||||
- name: Install Composer dependencies
|
||||
if: ${{ env.COMPOSER_INSTALL == true }}
|
||||
run: |
|
||||
docker-compose run --rm php composer --version
|
||||
docker-compose run --rm php composer install
|
||||
|
||||
- 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 build/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 PHPUnit tests
|
||||
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist
|
||||
|
||||
- name: Run AJAX tests
|
||||
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --group ajax
|
||||
|
||||
- name: Run tests as a multisite install
|
||||
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c tests/phpunit/multisite.xml
|
||||
|
||||
- name: Run ms-files tests as a multisite install
|
||||
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c tests/phpunit/multisite.xml --group ms-files
|
||||
|
||||
- name: Run external HTTP tests
|
||||
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --group external-http
|
||||
|
||||
- name: Run REST API tests
|
||||
run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --group restapi-jsclient
|
||||
|
||||
# __fakegroup__ is excluded to force PHPUnit to ignore the <exclude> settings in phpunit.xml.dist.
|
||||
- name: Run (xDebug) tests
|
||||
run: LOCAL_PHP_XDEBUG=true npm run test:php -- -v --group xdebug --exclude-group __fakegroup__
|
||||
|
||||
- name: Checkout the WordPress Test Reporter
|
||||
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/master' && matrix.report }}
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'WordPress/phpunit-test-runner'
|
||||
path: 'test-runner'
|
||||
|
||||
- name: Set up the Git repository
|
||||
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/master' && matrix.report }}
|
||||
run: |
|
||||
git init
|
||||
git remote add origin https://github.com/WordPress/wordpress-develop.git
|
||||
git fetch
|
||||
git reset origin/master
|
||||
|
||||
- name: Submit test results to the WordPress.org host test results
|
||||
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/master' && matrix.report }}
|
||||
env:
|
||||
WPT_REPORT_API_KEY: "${{ secrets.WPT_REPORT_API_KEY }}"
|
||||
run: docker-compose run --rm -e WPT_REPORT_API_KEY -e WPT_PREPARE_DIR=/var/www -e WPT_TEST_DIR=/var/www php php test-runner/report.php
|
71
.github/workflows/verify-npm-on-windows.yml
vendored
Normal file
71
.github/workflows/verify-npm-on-windows.yml
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
name: Test NPM on Windows
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- '3.[7-9]'
|
||||
- '[4-9].[0-9]'
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }}
|
||||
|
||||
jobs:
|
||||
# Verifies that installing NPM dependencies and building WordPress works on Windows.
|
||||
#
|
||||
# Performs the following steps:
|
||||
# - Cancels all previous workflow runs for pull requests that have not completed.
|
||||
# - Checks out the repository.
|
||||
# - 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.
|
||||
test-npm:
|
||||
name: Tests NPM on Windows
|
||||
runs-on: windows-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: Log debug information
|
||||
run: |
|
||||
npm --version
|
||||
node --version
|
||||
curl --version
|
||||
git --version
|
||||
svn --version
|
||||
|
||||
- name: Install NodeJS
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Get NPM cache directory
|
||||
id: npm-cache
|
||||
run: echo "::set-output name=dir::$(npm config get cache)"
|
||||
|
||||
- name: Cache NodeJS modules
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ${{ steps.npm-cache.outputs.dir }}
|
||||
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
|
59
.github/workflows/welcome-new-contributors.yml
vendored
Normal file
59
.github/workflows/welcome-new-contributors.yml
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
name: Welcome New Contributors
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [ opened ]
|
||||
|
||||
jobs:
|
||||
# Comments on a pull request when the author is a new contributor.
|
||||
post-welcome-message:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository == 'WordPress/wordpress-develop' }}
|
||||
|
||||
steps:
|
||||
- uses: bubkoo/welcome-action@v1
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
FIRST_PR_COMMENT: >
|
||||
Hi @{{ author }}! 👋
|
||||
|
||||
|
||||
Thank you for your contribution to WordPress! 💖
|
||||
|
||||
|
||||
It looks like this is your first pull request to `wordpress-develop`. Here are a few things to be aware of that may help you out!
|
||||
|
||||
|
||||
**No one monitors this repository for new pull requests.** Pull requests **must** be attached to a Trac ticket to be considered for inclusion in WordPress Core. To attach a pull request to a Trac ticket, please include the ticket's full URL in your pull request description.
|
||||
|
||||
|
||||
**Pull requests are never merged on GitHub.** The WordPress codebase continues to be managed through the SVN repository that this GitHub repository mirrors. Please feel free to open pull requests to work on any contribution you are making.
|
||||
|
||||
|
||||
More information about how GitHub pull requests can be used to contribute to WordPress can be found in [this blog post](https://make.wordpress.org/core/2020/02/21/working-on-trac-tickets-using-github-pull-requests/).
|
||||
|
||||
|
||||
**Please include automated tests.** Including tests in your pull request is one way to help your patch be considered faster. To learn about WordPress' test suites, visit the [Automated Testing](https://make.wordpress.org/core/handbook/testing/automated-testing/) page in the handbook.
|
||||
|
||||
|
||||
If you have not had a chance, please review the [Contribute with Code page](https://make.wordpress.org/core/handbook/contribute/) in the [WordPress Core Handbook](https://make.wordpress.org/core/handbook/).
|
||||
|
||||
|
||||
The [Developer Hub](https://developer.wordpress.org/) also documents the various [coding standards](https://make.wordpress.org/core/handbook/best-practices/coding-standards/) that are followed:
|
||||
|
||||
- [PHP Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/)
|
||||
|
||||
- [CSS Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/css/)
|
||||
|
||||
- [HTML Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/html/)
|
||||
|
||||
- [JavaScript Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/javascript/)
|
||||
|
||||
- [Accessibility Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/accessibility/)
|
||||
|
||||
- [Inline Documentation Standards](https://developer.wordpress.org/coding-standards/inline-documentation-standards/)
|
||||
|
||||
|
||||
Thank you,
|
||||
|
||||
The WordPress Project
|
@ -53,7 +53,7 @@ services:
|
||||
# The MySQL container.
|
||||
##
|
||||
mysql:
|
||||
image: mysql:${LOCAL_MYSQL-5.7}
|
||||
image: ${LOCAL_DB_TYPE-mysql}:${LOCAL_DB_VERSION-5.7}
|
||||
|
||||
networks:
|
||||
- wpdevnet
|
||||
|
@ -20,6 +20,8 @@ wp_cli( `config set WP_ENVIRONMENT_TYPE ${process.env.LOCAL_WP_ENVIRONMENT_TYPE}
|
||||
// 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' )
|
||||
@ -45,3 +47,12 @@ wait_on( { resources: [ `tcp:localhost:${process.env.LOCAL_PORT}`] } )
|
||||
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 test_plugin_directory = 'tests/phpunit/data/plugins/wordpress-importer';
|
||||
|
||||
execSync( `docker-compose exec -T php rm -rf ${test_plugin_directory} && svn checkout -r ${process.env.WP_IMPORTER_REVISION} https://plugins.svn.wordpress.org/wordpress-importer/trunk/ ${test_plugin_directory}`, { stdio: 'inherit' } );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user