mirror of
git://develop.git.wordpress.org/
synced 2025-03-20 20:09:53 +01:00
Build/Test Tools: Add a workflow that tests the process of upgrading WordPress to a build of the current branch.
Some checks failed
Cleanup Pull Requests / Clean up pull requests (push) Waiting to run
Coding Standards / PHP coding standards (push) Waiting to run
Coding Standards / JavaScript coding standards (push) Waiting to run
Coding Standards / Slack Notifications (push) Blocked by required conditions
Coding Standards / Failed workflow tasks (push) Blocked by required conditions
End-to-end Tests / Test with SCRIPT_DEBUG disabled (push) Waiting to run
End-to-end Tests / Test with SCRIPT_DEBUG enabled (push) Waiting to run
End-to-end Tests / Slack Notifications (push) Blocked by required conditions
End-to-end Tests / Failed workflow tasks (push) Blocked by required conditions
JavaScript Tests / QUnit Tests (push) Waiting to run
JavaScript Tests / Slack Notifications (push) Blocked by required conditions
JavaScript Tests / Failed workflow tasks (push) Blocked by required conditions
Performance Tests / Determine Matrix (push) Waiting to run
Performance Tests / ${{ matrix.multisite && 'Multisite' || 'Single Site' }} ${{ matrix.memcached && 'Memcached' || 'Default' }} (push) Blocked by required conditions
Performance Tests / Compare (push) Blocked by required conditions
Performance Tests / Slack Notifications (push) Blocked by required conditions
Performance Tests / Failed workflow tasks (push) Blocked by required conditions
PHP Compatibility / Check PHP compatibility (push) Waiting to run
PHP Compatibility / Slack Notifications (push) Blocked by required conditions
PHP Compatibility / Failed workflow tasks (push) Blocked by required conditions
PHPUnit Tests / PHP 7.2 (push) Waiting to run
PHPUnit Tests / PHP 7.3 (push) Waiting to run
PHPUnit Tests / PHP 7.4 (push) Waiting to run
PHPUnit Tests / PHP 8.0 (push) Waiting to run
PHPUnit Tests / PHP 8.1 (push) Waiting to run
PHPUnit Tests / PHP 8.2 (push) Waiting to run
PHPUnit Tests / PHP 8.3 (push) Waiting to run
PHPUnit Tests / PHP 8.4 (push) Waiting to run
PHPUnit Tests / html-api-html5lib-tests (push) Waiting to run
PHPUnit Tests / Slack Notifications (push) Blocked by required conditions
PHPUnit Tests / Failed workflow tasks (push) Blocked by required conditions
Test Build Processes / Core running from build (push) Waiting to run
Test Build Processes / Core running from src (push) Waiting to run
Test Build Processes / Gutenberg running from build (push) Waiting to run
Test Build Processes / Gutenberg running from src (push) Waiting to run
Test Build Processes / Slack Notifications (push) Blocked by required conditions
Test Build Processes / Failed workflow tasks (push) Blocked by required conditions
Upgrade Develop Version Tests / Build (push) Waiting to run
Upgrade Develop Version Tests / Upgrade from 6.5 (push) Blocked by required conditions
Upgrade Develop Version Tests / Upgrade from 6.6 (push) Blocked by required conditions
Upgrade Develop Version Tests / Upgrade from 6.7 (push) Blocked by required conditions
Upgrade Develop Version Tests / Slack Notifications (push) Blocked by required conditions
Upgrade Develop Version Tests / Failed workflow tasks (push) Blocked by required conditions
Upgrade Tests / 6.6 to latest (push) Has been cancelled
Upgrade Tests / 6.7 to latest (push) Has been cancelled
Upgrade Tests / 6.0 to latest (push) Has been cancelled
Upgrade Tests / 6.1 to latest (push) Has been cancelled
Upgrade Tests / 6.2 to latest (push) Has been cancelled
Upgrade Tests / 6.3 to latest (push) Has been cancelled
Upgrade Tests / 6.4 to latest (push) Has been cancelled
Upgrade Tests / 6.5 to latest (push) Has been cancelled
Upgrade Tests / 5.0 to latest (push) Has been cancelled
Upgrade Tests / 5.1 to latest (push) Has been cancelled
Upgrade Tests / 5.3 to latest (push) Has been cancelled
Upgrade Tests / 5.4 to latest (push) Has been cancelled
Upgrade Tests / 5.5 to latest (push) Has been cancelled
Upgrade Tests / 5.6 to latest (push) Has been cancelled
Upgrade Tests / 5.9 to latest (push) Has been cancelled
Upgrade Tests / 4.1 to latest (push) Has been cancelled
Upgrade Tests / 4.2 to latest (push) Has been cancelled
Upgrade Tests / 4.3 to latest (push) Has been cancelled
Upgrade Tests / 4.4 to latest (push) Has been cancelled
Upgrade Tests / 4.5 to latest (push) Has been cancelled
Upgrade Tests / 4.6 to latest (push) Has been cancelled
Upgrade Tests / 4.7 to latest (push) Has been cancelled
Lint GitHub Actions workflow files / Lint GitHub Action files (push) Has been cancelled
Upgrade Tests / Slack Notifications (push) Has been cancelled
Upgrade Tests / Failed workflow tasks (push) Has been cancelled
Some checks failed
Cleanup Pull Requests / Clean up pull requests (push) Waiting to run
Coding Standards / PHP coding standards (push) Waiting to run
Coding Standards / JavaScript coding standards (push) Waiting to run
Coding Standards / Slack Notifications (push) Blocked by required conditions
Coding Standards / Failed workflow tasks (push) Blocked by required conditions
End-to-end Tests / Test with SCRIPT_DEBUG disabled (push) Waiting to run
End-to-end Tests / Test with SCRIPT_DEBUG enabled (push) Waiting to run
End-to-end Tests / Slack Notifications (push) Blocked by required conditions
End-to-end Tests / Failed workflow tasks (push) Blocked by required conditions
JavaScript Tests / QUnit Tests (push) Waiting to run
JavaScript Tests / Slack Notifications (push) Blocked by required conditions
JavaScript Tests / Failed workflow tasks (push) Blocked by required conditions
Performance Tests / Determine Matrix (push) Waiting to run
Performance Tests / ${{ matrix.multisite && 'Multisite' || 'Single Site' }} ${{ matrix.memcached && 'Memcached' || 'Default' }} (push) Blocked by required conditions
Performance Tests / Compare (push) Blocked by required conditions
Performance Tests / Slack Notifications (push) Blocked by required conditions
Performance Tests / Failed workflow tasks (push) Blocked by required conditions
PHP Compatibility / Check PHP compatibility (push) Waiting to run
PHP Compatibility / Slack Notifications (push) Blocked by required conditions
PHP Compatibility / Failed workflow tasks (push) Blocked by required conditions
PHPUnit Tests / PHP 7.2 (push) Waiting to run
PHPUnit Tests / PHP 7.3 (push) Waiting to run
PHPUnit Tests / PHP 7.4 (push) Waiting to run
PHPUnit Tests / PHP 8.0 (push) Waiting to run
PHPUnit Tests / PHP 8.1 (push) Waiting to run
PHPUnit Tests / PHP 8.2 (push) Waiting to run
PHPUnit Tests / PHP 8.3 (push) Waiting to run
PHPUnit Tests / PHP 8.4 (push) Waiting to run
PHPUnit Tests / html-api-html5lib-tests (push) Waiting to run
PHPUnit Tests / Slack Notifications (push) Blocked by required conditions
PHPUnit Tests / Failed workflow tasks (push) Blocked by required conditions
Test Build Processes / Core running from build (push) Waiting to run
Test Build Processes / Core running from src (push) Waiting to run
Test Build Processes / Gutenberg running from build (push) Waiting to run
Test Build Processes / Gutenberg running from src (push) Waiting to run
Test Build Processes / Slack Notifications (push) Blocked by required conditions
Test Build Processes / Failed workflow tasks (push) Blocked by required conditions
Upgrade Develop Version Tests / Build (push) Waiting to run
Upgrade Develop Version Tests / Upgrade from 6.5 (push) Blocked by required conditions
Upgrade Develop Version Tests / Upgrade from 6.6 (push) Blocked by required conditions
Upgrade Develop Version Tests / Upgrade from 6.7 (push) Blocked by required conditions
Upgrade Develop Version Tests / Slack Notifications (push) Blocked by required conditions
Upgrade Develop Version Tests / Failed workflow tasks (push) Blocked by required conditions
Upgrade Tests / 6.6 to latest (push) Has been cancelled
Upgrade Tests / 6.7 to latest (push) Has been cancelled
Upgrade Tests / 6.0 to latest (push) Has been cancelled
Upgrade Tests / 6.1 to latest (push) Has been cancelled
Upgrade Tests / 6.2 to latest (push) Has been cancelled
Upgrade Tests / 6.3 to latest (push) Has been cancelled
Upgrade Tests / 6.4 to latest (push) Has been cancelled
Upgrade Tests / 6.5 to latest (push) Has been cancelled
Upgrade Tests / 5.0 to latest (push) Has been cancelled
Upgrade Tests / 5.1 to latest (push) Has been cancelled
Upgrade Tests / 5.3 to latest (push) Has been cancelled
Upgrade Tests / 5.4 to latest (push) Has been cancelled
Upgrade Tests / 5.5 to latest (push) Has been cancelled
Upgrade Tests / 5.6 to latest (push) Has been cancelled
Upgrade Tests / 5.9 to latest (push) Has been cancelled
Upgrade Tests / 4.1 to latest (push) Has been cancelled
Upgrade Tests / 4.2 to latest (push) Has been cancelled
Upgrade Tests / 4.3 to latest (push) Has been cancelled
Upgrade Tests / 4.4 to latest (push) Has been cancelled
Upgrade Tests / 4.5 to latest (push) Has been cancelled
Upgrade Tests / 4.6 to latest (push) Has been cancelled
Upgrade Tests / 4.7 to latest (push) Has been cancelled
Lint GitHub Actions workflow files / Lint GitHub Action files (push) Has been cancelled
Upgrade Tests / Slack Notifications (push) Has been cancelled
Upgrade Tests / Failed workflow tasks (push) Has been cancelled
This complements the existing workflow which tests upgrading to an already released version. Props johnbillion, peterwilsoncc, mukesh27, desrosj, audrasjb, joemcgill. See #62221 git-svn-id: https://develop.svn.wordpress.org/trunk@59815 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
ac2eeb9868
commit
24a2eacf7d
60
.github/workflows/reusable-build-package.yml
vendored
Normal file
60
.github/workflows/reusable-build-package.yml
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
##
|
||||
# A reusable workflow that builds and packages WordPress. The resulting package can be used to test upgrading and installing.
|
||||
##
|
||||
name: Build and package WordPress
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
# Disable permissions for all available scopes by default.
|
||||
# Any needed permissions should be configured at the job level.
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
# Builds and packages WordPress.
|
||||
#
|
||||
# Performs the following steps:
|
||||
# - Checks out the repository.
|
||||
# - Sets up Node.js.
|
||||
# - Runs the build script.
|
||||
# - Prepares the directory structure for the ZIP.
|
||||
# - Creates a ZIP of the built files.
|
||||
# - Uploads the ZIP as a GitHub Actions artifact.
|
||||
build:
|
||||
name: WordPress
|
||||
permissions:
|
||||
contents: read
|
||||
runs-on: ubuntu-24.04
|
||||
timeout-minutes: 20
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
cache: npm
|
||||
|
||||
- name: Install npm Dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build WordPress
|
||||
run: npm run build
|
||||
|
||||
- name: Prepare the directory structure for the ZIP
|
||||
run: mv build wordpress
|
||||
|
||||
- name: Create ZIP of built files
|
||||
run: zip -q -r develop.zip wordpress/.
|
||||
|
||||
- name: Upload ZIP as a GitHub Actions artifact
|
||||
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
|
||||
with:
|
||||
name: wordpress-develop
|
||||
path: develop.zip
|
||||
if-no-files-found: error
|
34
.github/workflows/reusable-upgrade-testing.yml
vendored
34
.github/workflows/reusable-upgrade-testing.yml
vendored
@ -14,7 +14,7 @@ on:
|
||||
required: true
|
||||
type: 'string'
|
||||
new-version:
|
||||
description: 'The version of WordPress to update to.'
|
||||
description: 'The version of WordPress to update to. Use "latest" to update to the latest version, "develop" to update to the current branch, or provide a specific version number to update to.'
|
||||
type: 'string'
|
||||
default: 'latest'
|
||||
php:
|
||||
@ -49,8 +49,13 @@ jobs:
|
||||
# - Downloads the specified version of WordPress.
|
||||
# - Creates a `wp-config.php` file.
|
||||
# - Installs WordPress.
|
||||
# - Checks the version of WordPress before the upgrade.
|
||||
# - Updates to the latest minor version.
|
||||
# - Updates the database after the minor update.
|
||||
# - Checks the version of WordPress after the minor update.
|
||||
# - Updates to the version of WordPress being tested.
|
||||
# - Updates the database.
|
||||
# - Checks the version of WordPress after the upgrade.
|
||||
upgrade-tests:
|
||||
name: ${{ inputs.wp }} to ${{ inputs.new-version }} / PHP ${{ inputs.php }} with ${{ 'mariadb' == inputs.db-type && 'MariaDB' || 'MySQL' }} ${{ inputs.db-version }}${{ inputs.multisite && ' multisite' || '' }}
|
||||
permissions: {}
|
||||
@ -96,11 +101,38 @@ jobs:
|
||||
--url=http://localhost/ --title="Upgrade Test" --admin_user=admin \
|
||||
--admin_password=password --admin_email=me@example.org --skip-email
|
||||
|
||||
- name: Pre-upgrade version check
|
||||
run: wp core version
|
||||
|
||||
- name: Update to the latest minor version
|
||||
run: wp core update --minor
|
||||
|
||||
- name: Update the database after the minor update
|
||||
run: wp core update-db ${{ inputs.multisite && '--network' || '' }}
|
||||
|
||||
- name: Post-upgrade version check after the minor update
|
||||
run: wp core version
|
||||
|
||||
- name: Download build artifact for the current branch
|
||||
if: ${{ inputs.new-version == 'develop' }}
|
||||
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
|
||||
with:
|
||||
name: wordpress-develop
|
||||
|
||||
- name: Upgrade to WordPress at current branch
|
||||
if: ${{ inputs.new-version == 'develop' }}
|
||||
run: |
|
||||
wp core update develop.zip
|
||||
|
||||
- name: Upgrade to WordPress ${{ inputs.new-version }}
|
||||
if: ${{ inputs.new-version != 'develop' }}
|
||||
run: |
|
||||
wp core update ${{ 'latest' != inputs.new-version && '--version="${WP_VERSION}"' || '' }}
|
||||
env:
|
||||
WP_VERSION: ${{ inputs.new-version }}
|
||||
|
||||
- name: Update the database
|
||||
run: wp core update-db ${{ inputs.multisite && '--network' || '' }}
|
||||
|
||||
- name: Post-upgrade version check
|
||||
run: wp core version
|
||||
|
129
.github/workflows/upgrade-develop-testing.yml
vendored
Normal file
129
.github/workflows/upgrade-develop-testing.yml
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
# Confirms that updating WordPress using WP-CLI works successfully.
|
||||
#
|
||||
# This workflow tests upgrading from a previous version to the current wordpress-develop checkout, not to a version available on WordPress.org.
|
||||
name: Upgrade Develop Version Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- trunk
|
||||
- '6.[8-9]'
|
||||
- '[7-9].[0-9]'
|
||||
tags:
|
||||
- '[0-9]+.[0-9]'
|
||||
- '[0-9]+.[0-9].[0-9]+'
|
||||
paths:
|
||||
# Any change to a source PHP file should run checks.
|
||||
- 'src/**.php'
|
||||
# Confirm any changes to relevant workflow files.
|
||||
- '.github/workflows/upgrade-develop-testing.yml'
|
||||
- '.github/workflows/reusable-upgrade-testing.yml'
|
||||
pull_request:
|
||||
branches:
|
||||
- trunk
|
||||
- '6.[8-9]'
|
||||
- '[7-9].[0-9]'
|
||||
paths:
|
||||
# Any change to a source PHP file should run checks.
|
||||
- 'src/**.php'
|
||||
# Confirm any changes to relevant workflow files.
|
||||
- '.github/workflows/upgrade-develop-testing.yml'
|
||||
- '.github/workflows/reusable-upgrade-testing.yml'
|
||||
workflow_dispatch:
|
||||
|
||||
# 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
|
||||
|
||||
# Disable permissions for all available scopes by default.
|
||||
# Any needed permissions should be configured at the job level.
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
# Build WordPress from the current branch ready for the upgrade tests.
|
||||
build:
|
||||
name: Build
|
||||
uses: ./.github/workflows/reusable-build-package.yml
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
# Run upgrade tests for the current branch.
|
||||
upgrade-tests-develop:
|
||||
name: Upgrade from ${{ matrix.wp }}
|
||||
uses: ./.github/workflows/reusable-upgrade-testing.yml
|
||||
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
||||
needs: [ build ]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ 'ubuntu-24.04' ]
|
||||
php: [ '7.2', '8.4' ]
|
||||
db-type: [ 'mysql' ]
|
||||
db-version: [ '5.7', '8.4' ]
|
||||
wp: [ '6.5', '6.6', '6.7' ]
|
||||
multisite: [ false, true ]
|
||||
|
||||
exclude:
|
||||
# The PHP <= 7.3/MySQL 8.4 jobs currently fail due to mysql_native_password being disabled by default. See https://core.trac.wordpress.org/ticket/61218.
|
||||
- php: '7.2'
|
||||
db-version: '8.4'
|
||||
with:
|
||||
os: ${{ matrix.os }}
|
||||
php: ${{ matrix.php }}
|
||||
db-type: ${{ matrix.db-type }}
|
||||
db-version: ${{ matrix.db-version }}
|
||||
wp: ${{ matrix.wp }}
|
||||
new-version: develop
|
||||
multisite: ${{ matrix.multisite }}
|
||||
|
||||
slack-notifications:
|
||||
name: Slack Notifications
|
||||
uses: ./.github/workflows/slack-notifications.yml
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
needs: [ upgrade-tests-develop ]
|
||||
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }}
|
||||
with:
|
||||
calling_status: ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }}
|
||||
secrets:
|
||||
SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }}
|
||||
SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }}
|
||||
SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }}
|
||||
SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }}
|
||||
|
||||
failed-workflow:
|
||||
name: Failed workflow tasks
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
actions: write
|
||||
needs: [ slack-notifications ]
|
||||
if: |
|
||||
always() &&
|
||||
github.repository == 'WordPress/wordpress-develop' &&
|
||||
github.event_name != 'pull_request' &&
|
||||
github.run_attempt < 2 &&
|
||||
(
|
||||
contains( needs.*.result, 'cancelled' ) ||
|
||||
contains( needs.*.result, 'failure' )
|
||||
)
|
||||
|
||||
steps:
|
||||
- name: Dispatch workflow run
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
retries: 2
|
||||
retry-exempt-status-codes: 418
|
||||
script: |
|
||||
github.rest.actions.createWorkflowDispatch({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
workflow_id: 'failed-workflow.yml',
|
||||
ref: 'trunk',
|
||||
inputs: {
|
||||
run_id: `${context.runId}`,
|
||||
}
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user