Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…into enhancement/remove-variation-fontend
  • Loading branch information
kt-12 committed Dec 7, 2023
2 parents 8ad9728 + 8035bda commit d9dabaa
Show file tree
Hide file tree
Showing 530 changed files with 23,830 additions and 19,123 deletions.
87 changes: 87 additions & 0 deletions .github/workflows/callable-test-core-build-process.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
##
# A callable workflow that tests the WordPress Core build process.
##
name: Test the WordPress Build Process

on:
workflow_call:
inputs:
os:
description: 'Operating system to run tests on'
required: false
type: 'string'
default: 'ubuntu-latest'
directory:
description: 'Directory to run WordPress from. Valid values are `src` or `build`'
required: false
type: 'string'
default: 'src'

env:
PUPPETEER_SKIP_DOWNLOAD: ${{ true }}

jobs:
# Verifies that installing npm dependencies and building WordPress works as expected.
#
# Performs the following steps:
# - Checks out the repository.
# - Sets up Node.js.
# - Logs debug information about the GitHub Action runner.
# - Installs npm dependencies.
# - Builds WordPress to run from the desired location (src or build).
# - Ensures version-controlled files are not modified or deleted.
# - Cleans up after building WordPress.
# - Ensures version-controlled files are not modified or deleted.
# - Creates a ZIP of the built WordPress files (when building to the build directory).
# - Uploads the ZIP as a GitHub Actions artifact (when building to the build directory).
build-process-tests:
name: Core running from ${{ inputs.directory }} / ${{ inputs.os == 'macos-latest' && 'MacOS' || inputs.os == 'windows-latest' && 'Windows' || 'Linux' }}
runs-on: ${{ inputs.os }}
timeout-minutes: 20

steps:
- name: Checkout repository
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
with:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}

- name: Set up Node.js
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
with:
node-version-file: '.nvmrc'
cache: npm

- name: Log debug information
run: |
npm --version
node --version
curl --version
git --version
svn --version
- name: Install npm Dependencies
run: npm ci

- name: Build WordPress to run from ${{ inputs.directory }}
run: npm run build${{ inputs.directory == 'src' && ':dev' || '' }}

- name: Ensure version-controlled files are not modified or deleted during building
run: git diff --exit-code

- name: Clean after building to run from ${{ inputs.directory }}
run: npm run grunt clean${{ inputs.directory == 'src' && ' -- --dev' || '' }}

- name: Ensure version-controlled files are not modified or deleted during cleaning
run: git diff --exit-code

- name: Create ZIP of built files
if: ${{ inputs.directory == 'build' && 'ubuntu-latest' == inputs.os }}
run: zip -r wordpress.zip build/.

- name: Upload ZIP as a GitHub Actions artifact
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
if: ${{ inputs.directory == 'build' && 'ubuntu-latest' == inputs.os }}
with:
name: wordpress-build-${{ github.event_name == 'pull_request' && github.event.number || github.sha }}
path: wordpress.zip
if-no-files-found: error
92 changes: 92 additions & 0 deletions .github/workflows/callable-test-gutenberg-build-process.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
##
# A callable workflow that tests the Gutenberg plugin build process when run within a wordpress-develop checkout.
##
name: Test the Gutenberg plugin Build Process

on:
workflow_call:
inputs:
os:
description: 'Operating system to run tests on'
required: false
type: 'string'
default: 'ubuntu-latest'
directory:
description: 'Directory to run WordPress from. Valid values are `src` or `build`'
required: false
type: 'string'
default: 'src'

env:
GUTENBERG_DIRECTORY: ${{ inputs.directory == 'build' && 'build' || 'src' }}/wp-content/plugins/gutenberg
PUPPETEER_SKIP_DOWNLOAD: ${{ true }}

jobs:
# Verifies that installing npm dependencies and building the Gutenberg plugin works as expected.
#
# Performs the following steps:
# - Checks out the repository.
# - Checks out the Gutenberg plugin into the plugins directory.
# - Sets up Node.js.
# - Logs debug information about the GitHub Action runner.
# - Installs Core npm dependencies.
# - Installs Gutenberg npm dependencies.
# - Runs the Gutenberg build process.
# - Builds WordPress to run from the relevant location (src or build).
# - Builds Gutenberg.
# - Ensures version-controlled files are not modified or deleted.
build-process-tests:
name: Gutenberg running from ${{ inputs.directory }} / ${{ inputs.os == 'macos-latest' && 'MacOS' || inputs.os == 'windows-latest' && 'Windows' || 'Linux' }}
runs-on: ${{ inputs.os }}
timeout-minutes: 30

steps:
- name: Checkout repository
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
with:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}

- name: Checkout Gutenberg plugin
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
with:
repository: 'WordPress/gutenberg'
path: ${{ env.GUTENBERG_DIRECTORY }}
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}

- name: Set up Node.js
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
with:
node-version-file: '.nvmrc'
cache: npm
cache-dependency-path: |
package-lock.json
${{ env.GUTENBERG_DIRECTORY }}/package-lock.json
- name: Log debug information
run: |
npm --version
node --version
curl --version
git --version
svn --version
- name: Install Core Dependencies
run: npm ci

- name: Install Gutenberg Dependencies
run: npm ci
working-directory: ${{ env.GUTENBERG_DIRECTORY }}

- name: Build Gutenberg
run: npm run build
working-directory: ${{ env.GUTENBERG_DIRECTORY }}

- name: Build WordPress to run from ${{ inputs.directory }}
run: npm run build${{ inputs.directory == 'src' && ':dev' || '' }}

- name: Run Gutenberg build script after building Core to run from ${{ inputs.directory }}
run: npm run build
working-directory: ${{ env.GUTENBERG_DIRECTORY }}

- name: Ensure version-controlled files are not modified or deleted during building
run: git diff --exit-code
2 changes: 2 additions & 0 deletions .github/workflows/coding-standards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ jobs:
contents: read
timeout-minutes: 20
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
env:
PUPPETEER_SKIP_DOWNLOAD: ${{ true }}

steps:
- name: Checkout repository
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/end-to-end-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ permissions: {}

env:
LOCAL_DIR: build
PUPPETEER_SKIP_DOWNLOAD: ${{ true }}

jobs:
# Runs the end-to-end test suite.
Expand Down Expand Up @@ -158,7 +159,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
actions: write
needs: [ e2e-tests ]
needs: [ e2e-tests, slack-notifications ]
if: |
always() &&
github.repository == 'WordPress/wordpress-develop' &&
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/failed-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ jobs:
runs-on: ubuntu-latest
permissions:
actions: write
timeout-minutes: 20
timeout-minutes: 30

steps:
- name: Rerun a workflow
uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6.4.1
with:
retries: 10
retries: 15
retry-exempt-status-codes: 418
script: |
const workflow_run = await github.rest.actions.getWorkflowRun({
Expand Down
18 changes: 17 additions & 1 deletion .github/workflows/performance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ concurrency:
permissions: {}

env:
PUPPETEER_SKIP_DOWNLOAD: ${{ true }}

# Performance testing should be performed in an environment reflecting a standard production environment.
LOCAL_WP_DEBUG: false
LOCAL_SCRIPT_DEBUG: false
Expand Down Expand Up @@ -71,11 +73,13 @@ jobs:
# - Check out target commit (target branch or previous commit).
# - Install npm dependencies.
# - Build WordPress.
# - Run any database upgrades.
# - Run performance tests (previous/target commit).
# - Print target performance tests results.
# - Reset to original commit.
# - Install npm dependencies.
# - Set the environment to the baseline version.
# - Run any database upgrades.
# - Run baseline performance tests.
# - Print baseline performance tests results.
# - Compare results with base.
Expand All @@ -90,7 +94,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
if: ${{ ( github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' ) && ! contains( github.event.before, '00000000' ) }}

steps:
- name: Configure environment variables
Expand Down Expand Up @@ -160,6 +164,12 @@ jobs:
run: |
npm run env:cli -- rewrite structure '/%year%/%monthnum%/%postname%/' --path=/var/www/${{ env.LOCAL_DIR }}
- name: Install additional languages
run: |
npm run env:cli -- language core install de_DE --path=/var/www/${{ env.LOCAL_DIR }}
npm run env:cli -- language plugin install de_DE --all --path=/var/www/${{ env.LOCAL_DIR }}
npm run env:cli -- language theme install de_DE --all --path=/var/www/${{ env.LOCAL_DIR }}
- name: Install MU plugin
run: |
mkdir ./${{ env.LOCAL_DIR }}/wp-content/mu-plugins
Expand All @@ -186,6 +196,9 @@ jobs:
- name: Build WordPress
run: npm run build

- name: Run any database upgrades
run: npm run env:cli -- core update-db --path=/var/www/${{ env.LOCAL_DIR }}

- name: Run target performance tests (base/previous commit)
env:
TEST_RESULTS_PREFIX: before
Expand All @@ -207,6 +220,9 @@ jobs:
npm run env:cli -- core update --version=${{ env.BASE_TAG }} --force --path=/var/www/${{ env.LOCAL_DIR }}
npm run env:cli -- core version --path=/var/www/${{ env.LOCAL_DIR }}
- name: Run any database upgrades
run: npm run env:cli -- core update-db --path=/var/www/${{ env.LOCAL_DIR }}

- name: Run baseline performance tests
env:
TEST_RESULTS_PREFIX: base
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/phpunit-tests-run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ env:
LOCAL_DB_VERSION: ${{ inputs.db-version }}
LOCAL_PHP_MEMCACHED: ${{ inputs.memcached }}
PHPUNIT_CONFIG: ${{ inputs.phpunit-config }}
PUPPETEER_SKIP_DOWNLOAD: ${{ true }}

jobs:
# Runs the PHPUnit tests for WordPress.
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/phpunit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
os: [ ubuntu-latest ]
php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ]
db-type: [ 'mysql' ]
db-version: [ '5.7', '8.0' ]
db-version: [ '5.7', '8.0', '8.1', '8.2' ]
multisite: [ false, true ]
memcached: [ false ]

Expand Down Expand Up @@ -99,7 +99,7 @@ jobs:
os: [ ubuntu-latest ]
php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ]
db-type: [ 'mariadb' ]
db-version: [ '10.4', '10.6', '10.11', '11.0' ]
db-version: [ '10.4', '10.6', '10.11', '11.2' ]
multisite: [ false, true ]
memcached: [ false ]

Expand All @@ -108,13 +108,13 @@ jobs:
- os: ubuntu-latest
php: '7.4'
db-type: 'mariadb'
db-version: '11.0'
db-version: '11.2'
multisite: false
memcached: true
- os: ubuntu-latest
php: '7.4'
db-type: 'mariadb'
db-version: '11.0'
db-version: '11.2'
multisite: true
memcached: true
with:
Expand Down
Loading

0 comments on commit d9dabaa

Please sign in to comment.