From 0e380f578680f5973739b46e5cdd3d8f24be3536 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 16:25:53 -0400 Subject: [PATCH 01/49] Introduce a job to generate exclusions --- .github/workflows/upgrade-testing.yml | 75 ++++++++++++++++----------- 1 file changed, 44 insertions(+), 31 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index fb1d973344c18..ec65031fb715e 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -26,6 +26,9 @@ on: type: string default: 'latest' +env: + CURRENTLY_SUPPORTED_BRANCH: '6.8' + # 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 @@ -57,10 +60,40 @@ permissions: {} # - 5.6.x Docker containers are available and work, but 5.6 only accounts for ~2.3% of installs as of 12/6/2024.defaults: # - 5.7.x accounts for ~20% of installs, so this is used below instead. jobs: + generate-exclusions: + name: Generate test exclusions + runs-on: 'ubuntu-24.04' + if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' }} + timeout-minutes: 5 + + steps: + - name: Set exclusions output + id: set-exclusions + shell: bash + env: + NEW_VERSION: ${{ inputs.new-version }} + run: | + DEFAULT_EXCLUSIONS='[ + # 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"}, + {"php":"7.3","db-version":"8.4"}, + # MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. + {"php":"7.2","db-version":"9.4"}, + {"php":"7.3","db-version":"9.4"} + ]' + + if [[ "$NEW_VERSION" == "latest" ]] || \ + [[ "$NEW_VERSION" == "nightly" ]] || \ + [[ -z "$NEW_VERSION" ]]; then + echo matrix_exclusions="$DEFAULT_EXCLUSIONS" >> "$GITHUB_OUTPUT" + exit 0 + fi + # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} uses: ./.github/workflows/reusable-upgrade-testing.yml + needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} permissions: contents: read @@ -74,17 +107,7 @@ jobs: wp: [ '6.7', '6.8' ] 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' - - php: '7.3' - db-version: '8.4' - # MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '9.4' - - php: '7.3' - db-version: '9.4' + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -98,6 +121,7 @@ jobs: upgrade-tests-wp-6x-mysql: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} uses: ./.github/workflows/reusable-upgrade-testing.yml + needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} permissions: contents: read @@ -111,10 +135,7 @@ jobs: wp: [ '6.0', '6.3', '6.4', '6.5' ] 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' + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -128,6 +149,7 @@ jobs: upgrade-tests-wp-5x-php-7x-mysql: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} uses: ./.github/workflows/reusable-upgrade-testing.yml + needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} permissions: contents: read @@ -141,10 +163,7 @@ jobs: wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', '5.9' ] 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' + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -162,6 +181,7 @@ jobs: upgrade-tests-wp-5x-php-8x-mysql: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} uses: ./.github/workflows/reusable-upgrade-testing.yml + needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} permissions: contents: read @@ -174,6 +194,8 @@ jobs: db-version: [ '5.7', '8.4' ] wp: [ '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] + + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -192,6 +214,7 @@ jobs: upgrade-tests-oldest-wp-mysql: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} uses: ./.github/workflows/reusable-upgrade-testing.yml + needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} permissions: contents: read @@ -205,17 +228,7 @@ jobs: wp: [ '4.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' - - php: '7.3' - db-version: '8.4' - # MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '9.4' - - php: '7.3' - db-version: '9.4' + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -231,7 +244,7 @@ jobs: permissions: actions: read contents: read - needs: [ upgrade-tests-recent-releases, upgrade-tests-wp-6x-mysql, upgrade-tests-wp-5x-php-7x-mysql, upgrade-tests-wp-5x-php-8x-mysql, upgrade-tests-oldest-wp-mysql ] + needs: [ generate-exclusions, upgrade-tests-recent-releases, upgrade-tests-wp-6x-mysql, upgrade-tests-wp-5x-php-7x-mysql, upgrade-tests-wp-5x-php-8x-mysql, upgrade-tests-oldest-wp-mysql ] 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' }} From 66477d1ec7cdcf7a2a008e172334cf6b675593d4 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 16:28:24 -0400 Subject: [PATCH 02/49] Fix conditional logic for job --- .github/workflows/upgrade-testing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index ec65031fb715e..c4676b62de234 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -63,7 +63,7 @@ jobs: generate-exclusions: name: Generate test exclusions runs-on: 'ubuntu-24.04' - if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' }} + if: ${{ github.repository == 'WordPress/wordpress-develop' }} timeout-minutes: 5 steps: @@ -71,7 +71,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'latest' }} run: | DEFAULT_EXCLUSIONS='[ # 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. From 9d68909d75e7cb9fc25bc1dc571c6aa0606a4af6 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 16:30:13 -0400 Subject: [PATCH 03/49] NO such thing as JSON comments --- .github/workflows/upgrade-testing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index c4676b62de234..96308b9d158f8 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -73,11 +73,11 @@ jobs: env: NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'latest' }} run: | + # 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. + # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. DEFAULT_EXCLUSIONS='[ - # 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"}, {"php":"7.3","db-version":"8.4"}, - # MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. {"php":"7.2","db-version":"9.4"}, {"php":"7.3","db-version":"9.4"} ]' From 894b86687364fd4267c5880ba9e5049bcdbd8599 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 16:35:51 -0400 Subject: [PATCH 04/49] Try compacting defaults --- .github/workflows/upgrade-testing.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 96308b9d158f8..c2e7eaa784671 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -85,7 +85,8 @@ jobs: if [[ "$NEW_VERSION" == "latest" ]] || \ [[ "$NEW_VERSION" == "nightly" ]] || \ [[ -z "$NEW_VERSION" ]]; then - echo matrix_exclusions="$DEFAULT_EXCLUSIONS" >> "$GITHUB_OUTPUT" + COMPACTED=$(echo "$DEFAULT_EXCLUSIONS" | tr -d '\n' | tr -d ' ') + echo "matrix_exclusions=$COMPACTED" >> "$GITHUB_OUTPUT" exit 0 fi From 5b5a54f6398109fb87bad5172af65a355c2bb906 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 16:38:07 -0400 Subject: [PATCH 05/49] Define an output to pass data --- .github/workflows/upgrade-testing.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index c2e7eaa784671..ab4a7da0d0544 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -65,6 +65,8 @@ jobs: runs-on: 'ubuntu-24.04' if: ${{ github.repository == 'WordPress/wordpress-develop' }} timeout-minutes: 5 + outputs: + matrix_exclusions: ${{ steps.set-exclusions.outputs.matrix_exclusions }} steps: - name: Set exclusions output From 2641d8e6f0c88f2ff9faf5117f9553df0db0cb0e Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 16:47:24 -0400 Subject: [PATCH 06/49] Don't generate more exclusions on push. --- .github/workflows/upgrade-testing.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index ab4a7da0d0544..c386cdb89d482 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -28,6 +28,7 @@ on: env: CURRENTLY_SUPPORTED_BRANCH: '6.8' + OLDEST_SECURITY_BRANCH: '4.7' # Cancels all previous workflow runs for pull requests that have not completed. concurrency: @@ -81,12 +82,13 @@ jobs: {"php":"7.2","db-version":"8.4"}, {"php":"7.3","db-version":"8.4"}, {"php":"7.2","db-version":"9.4"}, - {"php":"7.3","db-version":"9.4"} + {"php":"7.3","db-version":"9.4"}, ]' - if [[ "$NEW_VERSION" == "latest" ]] || \ + if [[ -z "$NEW_VERSION" ]] || \ + [[ "$NEW_VERSION" == "latest" ]] || \ [[ "$NEW_VERSION" == "nightly" ]] || \ - [[ -z "$NEW_VERSION" ]]; then + [[ "$GITHUB_EVENT_NAME" != "workflow_dispatch" ]]; then COMPACTED=$(echo "$DEFAULT_EXCLUSIONS" | tr -d '\n' | tr -d ' ') echo "matrix_exclusions=$COMPACTED" >> "$GITHUB_OUTPUT" exit 0 From ddfdf2205a6ec4289857515010589cdb8c113d7c Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:01:04 -0400 Subject: [PATCH 07/49] Add exclusions dynamically --- .github/workflows/upgrade-testing.yml | 40 +++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index c386cdb89d482..ef76e02a16b22 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -22,7 +22,7 @@ on: workflow_dispatch: inputs: new-version: - description: 'The version to test installing. Accepts major and minor versions, "latest", or "nightly". Major releases must not end with ".0".' + description: 'The version to test upgrading to. Accepts both major and minor versions, "latest", or "nightly". Major releases must not end with ".0".' type: string default: 'latest' @@ -85,15 +85,43 @@ jobs: {"php":"7.3","db-version":"9.4"}, ]' - if [[ -z "$NEW_VERSION" ]] || \ + # The defaults are sufficient when not testing a specific version. + if [[ "$GITHUB_EVENT_NAME" != "workflow_dispatch" ]] || \ + [[ -z "$NEW_VERSION" ]] || \ [[ "$NEW_VERSION" == "latest" ]] || \ - [[ "$NEW_VERSION" == "nightly" ]] || \ - [[ "$GITHUB_EVENT_NAME" != "workflow_dispatch" ]]; then - COMPACTED=$(echo "$DEFAULT_EXCLUSIONS" | tr -d '\n' | tr -d ' ') - echo "matrix_exclusions=$COMPACTED" >> "$GITHUB_OUTPUT" + [[ "$NEW_VERSION" == "nightly" ]]; then + echo "matrix_exclusions=$(echo "$DEFAULT_EXCLUSIONS" | tr -d '\n' | tr -d ' ')" >> "$GITHUB_OUTPUT" exit 0 fi + # Determine if this is a major release. + MAJOR_RELEASE=false + if [[ "$MAJOR_RELEASE" =~ ^[0-9]+\.[0-9]+\.[1-9][0-9]*$ ]]; then + MAJOR_RELEASE=true + fi + + # Strip any preceding "v" and drop any ".0" values for major releases. + INPUT_VERSION=$(echo "$NEW_VERSION" | grep -oE '[0-9]+\.[0-9]+') + CURRENT_VERSION=$(echo "$CURRENTLY_SUPPORTED_BRANCH" | grep -oE '[0-9]+\.[0-9]+') + TEST_VERSION="$INPUT_VERSION" + + while [[ "$TEST_VERSION" != "$CURRENT_VERSION" ]]; do + # Only test the current version when a minor version has been specified. + if [[ "$TEST_VERSION" == "$INPUT_VERSION" && "$MAJOR_RELEASE" == "false" ]]; then + continue + fi + + GENERATED_EXCLUSIONS+='{"wp":"'"$TEST_VERSION"'"},' + + # Increment to next version. + TEST_VERSION="$(echo "$TEST_VERSION" | cut -d. -f1).$(echo $(echo "$TEST_VERSION" | cut -d. -f2) + 1)" + done + + # Add the current version and close the array. + GENERATED_EXCLUSIONS+='{"wp":"'"$TEST_VERSION"'"}]' + + echo "matrix_exclusions=$(echo "${DEFAULT_EXCLUSIONS%]}${GENERATED_EXCLUSIONS}" | tr -d '\n' | tr -d ' ')" >> "$GITHUB_OUTPUT" + # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} From 23355d82657aec994900ffde70c9827c6903b4b4 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:21:25 -0400 Subject: [PATCH 08/49] Fix variable references and avoid infinite loop. --- .github/workflows/upgrade-testing.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index ef76e02a16b22..acebf04c8164b 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -96,7 +96,7 @@ jobs: # Determine if this is a major release. MAJOR_RELEASE=false - if [[ "$MAJOR_RELEASE" =~ ^[0-9]+\.[0-9]+\.[1-9][0-9]*$ ]]; then + if [[ "$NEW_VERSION" =~ ^[0-9]+\.[0-9]+\.[1-9][0-9]*$ ]]; then MAJOR_RELEASE=true fi @@ -107,14 +107,14 @@ jobs: while [[ "$TEST_VERSION" != "$CURRENT_VERSION" ]]; do # Only test the current version when a minor version has been specified. - if [[ "$TEST_VERSION" == "$INPUT_VERSION" && "$MAJOR_RELEASE" == "false" ]]; then - continue + if [[ "$TEST_VERSION" != "$INPUT_VERSION" || "$MAJOR_RELEASE" == "true" ]]; then + GENERATED_EXCLUSIONS+='{"wp":"'"$TEST_VERSION"'"},' fi GENERATED_EXCLUSIONS+='{"wp":"'"$TEST_VERSION"'"},' # Increment to next version. - TEST_VERSION="$(echo "$TEST_VERSION" | cut -d. -f1).$(echo $(echo "$TEST_VERSION" | cut -d. -f2) + 1)" + TEST_VERSION="$(echo "$TEST_VERSION" | cut -d. -f1).$(($(echo "$TEST_VERSION" | cut -d. -f2) + 1))" done # Add the current version and close the array. From 7a02e8a3855692a52d8fe07a731200c55bc8e50f Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:26:09 -0400 Subject: [PATCH 09/49] Use version for testing and remove dispatch reference --- .github/workflows/upgrade-testing.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index acebf04c8164b..e10df81f566dd 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'latest' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -86,8 +86,7 @@ jobs: ]' # The defaults are sufficient when not testing a specific version. - if [[ "$GITHUB_EVENT_NAME" != "workflow_dispatch" ]] || \ - [[ -z "$NEW_VERSION" ]] || \ + if [[ -z "$NEW_VERSION" ]] || \ [[ "$NEW_VERSION" == "latest" ]] || \ [[ "$NEW_VERSION" == "nightly" ]]; then echo "matrix_exclusions=$(echo "$DEFAULT_EXCLUSIONS" | tr -d '\n' | tr -d ' ')" >> "$GITHUB_OUTPUT" From 947be2ecb86c1abc00c4d030bf5bf03c1aaab1d9 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:39:59 -0400 Subject: [PATCH 10/49] Revert test changes --- .github/workflows/upgrade-testing.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index e10df81f566dd..acebf04c8164b 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'latest' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -86,7 +86,8 @@ jobs: ]' # The defaults are sufficient when not testing a specific version. - if [[ -z "$NEW_VERSION" ]] || \ + if [[ "$GITHUB_EVENT_NAME" != "workflow_dispatch" ]] || \ + [[ -z "$NEW_VERSION" ]] || \ [[ "$NEW_VERSION" == "latest" ]] || \ [[ "$NEW_VERSION" == "nightly" ]]; then echo "matrix_exclusions=$(echo "$DEFAULT_EXCLUSIONS" | tr -d '\n' | tr -d ' ')" >> "$GITHUB_OUTPUT" From 46fa1db2186c338a8f2eb36414aa39c40b8c3766 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:42:29 -0400 Subject: [PATCH 11/49] Fake a dispatch again. --- .github/workflows/upgrade-testing.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index acebf04c8164b..89d89b4fa27f3 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'latest' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '5.9' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -86,8 +86,7 @@ jobs: ]' # The defaults are sufficient when not testing a specific version. - if [[ "$GITHUB_EVENT_NAME" != "workflow_dispatch" ]] || \ - [[ -z "$NEW_VERSION" ]] || \ + if [[ -z "$NEW_VERSION" ]] || \ [[ "$NEW_VERSION" == "latest" ]] || \ [[ "$NEW_VERSION" == "nightly" ]]; then echo "matrix_exclusions=$(echo "$DEFAULT_EXCLUSIONS" | tr -d '\n' | tr -d ' ')" >> "$GITHUB_OUTPUT" @@ -140,7 +139,7 @@ jobs: wp: [ '6.7', '6.8' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -168,7 +167,7 @@ jobs: wp: [ '6.0', '6.3', '6.4', '6.5' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -196,7 +195,7 @@ jobs: wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -228,7 +227,7 @@ jobs: wp: [ '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -261,7 +260,7 @@ jobs: wp: [ '4.7' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} From ea0372c74998161fbd237654b4741979b96613c6 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 20:48:55 -0400 Subject: [PATCH 12/49] Avoid adding version twice. --- .github/workflows/upgrade-testing.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 89d89b4fa27f3..5726c1e99e709 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -104,14 +104,15 @@ jobs: CURRENT_VERSION=$(echo "$CURRENTLY_SUPPORTED_BRANCH" | grep -oE '[0-9]+\.[0-9]+') TEST_VERSION="$INPUT_VERSION" + # Create an exclusion list. + GENERATED_EXCLUSIONS='' + while [[ "$TEST_VERSION" != "$CURRENT_VERSION" ]]; do # Only test the current version when a minor version has been specified. if [[ "$TEST_VERSION" != "$INPUT_VERSION" || "$MAJOR_RELEASE" == "true" ]]; then GENERATED_EXCLUSIONS+='{"wp":"'"$TEST_VERSION"'"},' fi - GENERATED_EXCLUSIONS+='{"wp":"'"$TEST_VERSION"'"},' - # Increment to next version. TEST_VERSION="$(echo "$TEST_VERSION" | cut -d. -f1).$(($(echo "$TEST_VERSION" | cut -d. -f2) + 1))" done From de990cf4b904a7392d4aaa585df2e6888af1a1f6 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:00:24 -0400 Subject: [PATCH 13/49] Fix logic for detecting major versions --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 5726c1e99e709..d7217b451be57 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -95,7 +95,7 @@ jobs: # Determine if this is a major release. MAJOR_RELEASE=false - if [[ "$NEW_VERSION" =~ ^[0-9]+\.[0-9]+\.[1-9][0-9]*$ ]]; then + if [[ "$NEW_VERSION" =~ ^[0-9]+\.[0-9]+\.0$ ]]; then MAJOR_RELEASE=true fi From cd31b4c55893c69f1689fbd18a6f3ed131d6f8a1 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:06:12 -0400 Subject: [PATCH 14/49] Revert `fromJSON` addition --- .github/workflows/upgrade-testing.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index d7217b451be57..4e22db8a2fff0 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -140,7 +140,7 @@ jobs: wp: [ '6.7', '6.8' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -168,7 +168,7 @@ jobs: wp: [ '6.0', '6.3', '6.4', '6.5' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -196,7 +196,7 @@ jobs: wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -228,7 +228,7 @@ jobs: wp: [ '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -261,7 +261,7 @@ jobs: wp: [ '4.7' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} From bf30578a63dc1c08795bebf7b6e60131fb61f8e8 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:10:16 -0400 Subject: [PATCH 15/49] Don't allow minor versions to go above `.9` --- .github/workflows/upgrade-testing.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 4e22db8a2fff0..22cd7b75cfd6f 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -114,7 +114,17 @@ jobs: fi # Increment to next version. - TEST_VERSION="$(echo "$TEST_VERSION" | cut -d. -f1).$(($(echo "$TEST_VERSION" | cut -d. -f2) + 1))" + MAJOR=$(echo "$TEST_VERSION" | cut -d. -f1) + MINOR=$(echo "$TEST_VERSION" | cut -d. -f2) + MINOR=$((MINOR + 1)) + + # Roll over to next major version if minor reaches 10 + if [[ $MINOR -eq 10 ]]; then + MAJOR=$((MAJOR + 1)) + MINOR=0 + fi + + TEST_VERSION="$MAJOR.$MINOR" done # Add the current version and close the array. From 7ddd96cd291d1e1e67ac0007ddb9d9127838fe17 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:10:40 -0400 Subject: [PATCH 16/49] Revert "Revert `fromJSON` addition" This reverts commit cd31b4c55893c69f1689fbd18a6f3ed131d6f8a1. --- .github/workflows/upgrade-testing.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 22cd7b75cfd6f..59aa27f0f0f91 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -150,7 +150,7 @@ jobs: wp: [ '6.7', '6.8' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -178,7 +178,7 @@ jobs: wp: [ '6.0', '6.3', '6.4', '6.5' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -206,7 +206,7 @@ jobs: wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -238,7 +238,7 @@ jobs: wp: [ '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -271,7 +271,7 @@ jobs: wp: [ '4.7' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} From e92aa31e6b5cce69f18300188fa22960fe9210da Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:12:47 -0400 Subject: [PATCH 17/49] Test with three digit version. --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 59aa27f0f0f91..5376469b663b2 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '5.9' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. From 70f737e2777ef435534553bc20d8053257b287b0 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:28:15 -0400 Subject: [PATCH 18/49] Test major versions with a trailing `.0` --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 5376469b663b2..595ff1bb098f9 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. From b60d7f65f3fee1ce1ba6b2f43dd6a07c32075552 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:33:08 -0400 Subject: [PATCH 19/49] Test 5.5.10 --- .github/workflows/upgrade-testing.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 595ff1bb098f9..b7054584e9130 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -63,8 +63,8 @@ permissions: {} jobs: generate-exclusions: name: Generate test exclusions - runs-on: 'ubuntu-24.04' - if: ${{ github.repository == 'WordPress/wordpress-develop' }} + runs-on: 'ubuntu-22.04' + if: ${{ true || github.repository == 'WordPress/wordpress-develop' }} timeout-minutes: 5 outputs: matrix_exclusions: ${{ steps.set-exclusions.outputs.matrix_exclusions }} @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '5.5.10' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. From a6aeac1781ddafc2b998b31b7ab7667bb750f358 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:38:13 -0400 Subject: [PATCH 20/49] Test `v5.7.0` --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index b7054584e9130..4343092d14def 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '5.5.10' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v5.7.0' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. From 9a89ecf4248beedeabbba680dcb544f8a4e5fa41 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:38:35 -0400 Subject: [PATCH 21/49] Test `v5.2` --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 4343092d14def..2423621d6fdaf 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v5.7.0' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v5.2' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. From 9f2222fd5ef095f11e668b7eac8c23cb0e2267e9 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:41:08 -0400 Subject: [PATCH 22/49] Test `v4.8.24` --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 2423621d6fdaf..78ada5db27507 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v5.2' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v4.8.24' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. From fbb511d255bab5a96fe8f84ec19e275fa2bb3bee Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:54:11 -0400 Subject: [PATCH 23/49] Remove fromJSON to test --- .github/workflows/upgrade-testing.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 78ada5db27507..b965d28079444 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v4.8.24' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v4.9.22' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -150,7 +150,7 @@ jobs: wp: [ '6.7', '6.8' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -178,7 +178,7 @@ jobs: wp: [ '6.0', '6.3', '6.4', '6.5' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -206,7 +206,7 @@ jobs: wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -238,7 +238,7 @@ jobs: wp: [ '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -271,7 +271,7 @@ jobs: wp: [ '4.7' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || fromJSON( '[]' ) }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} From 3edcf626920848a1e418fb8f4497a888df29b679 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:01:33 -0400 Subject: [PATCH 24/49] Test with 6.4.1 --- .github/workflows/upgrade-testing.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index b965d28079444..f69ac3f2808e0 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v4.9.22' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -134,7 +134,7 @@ jobs: # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -157,12 +157,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 6.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7 & 8. upgrade-tests-wp-6x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -185,12 +185,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -213,7 +213,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8. @@ -222,7 +222,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-wp-5x-php-8x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -245,7 +245,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # The oldest version of WordPress receiving security updates should always be tested against @@ -255,7 +255,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-oldest-wp-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -278,7 +278,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} slack-notifications: From 154b17b08831e0e7659f1c767702953ecfdcacd5 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:02:35 -0400 Subject: [PATCH 25/49] Test with 6.0.0 --- .github/workflows/upgrade-testing.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index f69ac3f2808e0..04633d3f81c2d 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -134,7 +134,7 @@ jobs: # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -157,12 +157,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} # Tests 6.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7 & 8. upgrade-tests-wp-6x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -185,12 +185,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -213,7 +213,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8. @@ -222,7 +222,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-wp-5x-php-8x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -245,7 +245,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} # The oldest version of WordPress receiving security updates should always be tested against @@ -255,7 +255,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-oldest-wp-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -278,7 +278,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} slack-notifications: From 89751fa626521739ba7b7c361d4ae501818863d0 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:15:36 -0400 Subject: [PATCH 26/49] Always test all combinations for input version --- .github/workflows/upgrade-testing.yml | 42 ++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 04633d3f81c2d..fd99b03ca9312 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -63,7 +63,7 @@ permissions: {} jobs: generate-exclusions: name: Generate test exclusions - runs-on: 'ubuntu-22.04' + runs-on: 'ubuntu-24.04' if: ${{ true || github.repository == 'WordPress/wordpress-develop' }} timeout-minutes: 5 outputs: @@ -132,6 +132,46 @@ jobs: echo "matrix_exclusions=$(echo "${DEFAULT_EXCLUSIONS%]}${GENERATED_EXCLUSIONS}" | tr -d '\n' | tr -d ' ')" >> "$GITHUB_OUTPUT" + # The full list of combinations for a specified version should always be tested. + # + # Since all supported combinations are already tested for the WordPress versions listed in the upgrade-tests-recent-releases + # job, those versions should be excluded here to avoid duplicate testing. + generate-matrix-for-input-version: + name: Build Test Matrix for Input Version + uses: ./.github/workflows/reusable-support-json-reader-v1.yml + permissions: + contents: read + if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' && ! contains( fromJSON('["6.7", "6.8"]'), inputs.new-version ) }} + with: + wp-version: ${{ inputs.new-version }} + + upgrade-tests-input-version: + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + uses: ./.github/workflows/reusable-upgrade-testing.yml + needs: [ 'generate-matrix-for-input-version' ] + if: ${{ github.repository == 'WordPress/wordpress-develop' }} + permissions: + contents: read + strategy: + fail-fast: false + matrix: + os: [ 'ubuntu-24.04' ] + php: ${{ fromJSON( needs.build-test-matrix.outputs.php-versions ) }} + db-type: [ 'mysql' ] + db-version: ${{ fromJSON( needs.build-test-matrix.outputs.mysql-versions ) }} + wp: [ '${{ inputs.new-version }}' ] + multisite: [ false, true ] + + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + with: + os: ${{ matrix.os }} + php: ${{ matrix.php }} + db-type: ${{ matrix.db-type }} + db-version: ${{ matrix.db-version }} + wp: ${{ matrix.wp }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + multisite: ${{ matrix.multisite }} + # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} From 0062c991a10b77889bbcb2a37fe8c65187e3e6f3 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:21:23 -0400 Subject: [PATCH 27/49] Simulate dispatch for now. --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index fd99b03ca9312..27d28e66ba73e 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -141,7 +141,7 @@ jobs: uses: ./.github/workflows/reusable-support-json-reader-v1.yml permissions: contents: read - if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' && ! contains( fromJSON('["6.7", "6.8"]'), inputs.new-version ) }} + if: ${{ true || github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' && ! contains( fromJSON('["6.7", "6.8"]'), inputs.new-version ) }} with: wp-version: ${{ inputs.new-version }} From e5879e893a0eb9f46ca5f62f3347f8e664aa7b73 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:23:13 -0400 Subject: [PATCH 28/49] Test with 6.4.1 --- .github/workflows/upgrade-testing.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 27d28e66ba73e..bd3674a05eac1 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -146,7 +146,7 @@ jobs: wp-version: ${{ inputs.new-version }} upgrade-tests-input-version: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-matrix-for-input-version' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -169,12 +169,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -197,12 +197,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 6.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7 & 8. upgrade-tests-wp-6x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -225,12 +225,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -253,7 +253,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8. @@ -262,7 +262,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-wp-5x-php-8x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -285,7 +285,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # The oldest version of WordPress receiving security updates should always be tested against @@ -295,7 +295,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-oldest-wp-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -318,7 +318,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} slack-notifications: From 293069b9135bc1796912f760f7b76ab0c8cca1ba Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:33:30 -0400 Subject: [PATCH 29/49] Test 6.1.4 --- .github/workflows/upgrade-testing.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index bd3674a05eac1..ea9bffa7c3922 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -74,7 +74,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -146,7 +146,7 @@ jobs: wp-version: ${{ inputs.new-version }} upgrade-tests-input-version: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-matrix-for-input-version' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -169,12 +169,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} multisite: ${{ matrix.multisite }} # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -197,12 +197,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} multisite: ${{ matrix.multisite }} # Tests 6.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7 & 8. upgrade-tests-wp-6x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -225,12 +225,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -253,7 +253,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8. @@ -262,7 +262,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-wp-5x-php-8x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -285,7 +285,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} multisite: ${{ matrix.multisite }} # The oldest version of WordPress receiving security updates should always be tested against @@ -295,7 +295,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-oldest-wp-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -318,7 +318,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} multisite: ${{ matrix.multisite }} slack-notifications: From 2df9fd628ba6ce68dbd245a42d483ad785f52808 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:45:15 -0400 Subject: [PATCH 30/49] Pass correct version to exclusions job. --- .github/workflows/reusable-support-json-reader-v1.yml | 2 +- .github/workflows/upgrade-testing.yml | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable-support-json-reader-v1.yml b/.github/workflows/reusable-support-json-reader-v1.yml index c2f263a093ab9..335aa6e383cd9 100644 --- a/.github/workflows/reusable-support-json-reader-v1.yml +++ b/.github/workflows/reusable-support-json-reader-v1.yml @@ -8,7 +8,7 @@ on: workflow_call: inputs: wp-version: - description: 'The WordPress version to test . Accepts major and minor versions, "latest", or "nightly". Major releases must not end with ".0".' + description: 'The WordPress version to test. Accepts major and minor versions, "latest", or "nightly". Major releases must not end with ".0".' type: string default: 'nightly' repository: diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index ea9bffa7c3922..e93ac435cf308 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -68,6 +68,7 @@ jobs: timeout-minutes: 5 outputs: matrix_exclusions: ${{ steps.set-exclusions.outputs.matrix_exclusions }} + major_version: ${{ steps.set-exclusions.outputs.major_version }} steps: - name: Set exclusions output @@ -104,6 +105,9 @@ jobs: CURRENT_VERSION=$(echo "$CURRENTLY_SUPPORTED_BRANCH" | grep -oE '[0-9]+\.[0-9]+') TEST_VERSION="$INPUT_VERSION" + # Save the major version number as an output. + echo "major_version=$(echo "$INPUT_VERSION" | cut -d. -f1)" >> "$GITHUB_OUTPUT" + # Create an exclusion list. GENERATED_EXCLUSIONS='' @@ -139,11 +143,12 @@ jobs: generate-matrix-for-input-version: name: Build Test Matrix for Input Version uses: ./.github/workflows/reusable-support-json-reader-v1.yml + needs: [ 'generate-exclusions' ] permissions: contents: read if: ${{ true || github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' && ! contains( fromJSON('["6.7", "6.8"]'), inputs.new-version ) }} with: - wp-version: ${{ inputs.new-version }} + wp-version: ${{ needs.generate-exclusions.outputs.major_version }} upgrade-tests-input-version: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} From 15b0f0e7c2c9f67d6c33e08ad8c0780a51d99d91 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:47:39 -0400 Subject: [PATCH 31/49] Store the full `x.y` in output --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index e93ac435cf308..689abe34c11e1 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -106,7 +106,7 @@ jobs: TEST_VERSION="$INPUT_VERSION" # Save the major version number as an output. - echo "major_version=$(echo "$INPUT_VERSION" | cut -d. -f1)" >> "$GITHUB_OUTPUT" + echo "major_version=$INPUT_VERSION" >> "$GITHUB_OUTPUT" # Create an exclusion list. GENERATED_EXCLUSIONS='' From 42e6743d76ad41a1e368ae3f2cfae7cb42ac1641 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:51:07 -0400 Subject: [PATCH 32/49] Fix dependencies --- .github/workflows/upgrade-testing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 689abe34c11e1..91b6d6ddd5595 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -181,7 +181,7 @@ jobs: upgrade-tests-recent-releases: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml - needs: [ 'generate-exclusions' ] + needs: [ 'generate-exclusions', 'generate-matrix-for-input-version' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} permissions: contents: read @@ -332,7 +332,7 @@ jobs: permissions: actions: read contents: read - needs: [ generate-exclusions, upgrade-tests-recent-releases, upgrade-tests-wp-6x-mysql, upgrade-tests-wp-5x-php-7x-mysql, upgrade-tests-wp-5x-php-8x-mysql, upgrade-tests-oldest-wp-mysql ] + needs: [ generate-exclusions, upgrade-tests-recent-releases, upgrade-tests-input-version, upgrade-tests-wp-6x-mysql, upgrade-tests-wp-5x-php-7x-mysql, upgrade-tests-wp-5x-php-8x-mysql, upgrade-tests-oldest-wp-mysql ] 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' }} From 431d44c1a228aca2b0e57d0336eeca2072710b36 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 22:56:24 -0400 Subject: [PATCH 33/49] Use correct variable references --- .github/workflows/upgrade-testing.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 91b6d6ddd5595..c806cc9dcfc40 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -68,7 +68,7 @@ jobs: timeout-minutes: 5 outputs: matrix_exclusions: ${{ steps.set-exclusions.outputs.matrix_exclusions }} - major_version: ${{ steps.set-exclusions.outputs.major_version }} + version: ${{ steps.set-exclusions.outputs.major_version }} steps: - name: Set exclusions output @@ -106,7 +106,7 @@ jobs: TEST_VERSION="$INPUT_VERSION" # Save the major version number as an output. - echo "major_version=$INPUT_VERSION" >> "$GITHUB_OUTPUT" + echo "version=$INPUT_VERSION" >> "$GITHUB_OUTPUT" # Create an exclusion list. GENERATED_EXCLUSIONS='' @@ -148,7 +148,7 @@ jobs: contents: read if: ${{ true || github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' && ! contains( fromJSON('["6.7", "6.8"]'), inputs.new-version ) }} with: - wp-version: ${{ needs.generate-exclusions.outputs.major_version }} + wp-version: ${{ needs.generate-exclusions.outputs.version }} upgrade-tests-input-version: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} @@ -161,13 +161,13 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-24.04' ] - php: ${{ fromJSON( needs.build-test-matrix.outputs.php-versions ) }} + php: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.php-versions ) }} db-type: [ 'mysql' ] - db-version: ${{ fromJSON( needs.build-test-matrix.outputs.mysql-versions ) }} + db-version: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.mysql-versions ) }} wp: [ '${{ inputs.new-version }}' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} From 49f1796ed63c208780ccef0a8e7406ff3f307815 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:02:09 -0400 Subject: [PATCH 34/49] Fix variables --- .github/workflows/upgrade-testing.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index c806cc9dcfc40..b680a1c34b60f 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -68,7 +68,7 @@ jobs: timeout-minutes: 5 outputs: matrix_exclusions: ${{ steps.set-exclusions.outputs.matrix_exclusions }} - version: ${{ steps.set-exclusions.outputs.major_version }} + major_version: ${{ steps.set-exclusions.outputs.major_version }} steps: - name: Set exclusions output @@ -106,7 +106,7 @@ jobs: TEST_VERSION="$INPUT_VERSION" # Save the major version number as an output. - echo "version=$INPUT_VERSION" >> "$GITHUB_OUTPUT" + echo "major_version=$INPUT_VERSION" >> "$GITHUB_OUTPUT" # Create an exclusion list. GENERATED_EXCLUSIONS='' @@ -146,9 +146,9 @@ jobs: needs: [ 'generate-exclusions' ] permissions: contents: read - if: ${{ true || github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' && ! contains( fromJSON('["6.7", "6.8"]'), inputs.new-version ) }} + if: ${{ true || github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' && ! contains( fromJSON('["6.7", "6.8"]'), needs.generate-exclusions.outputs.major_version ) }} with: - wp-version: ${{ needs.generate-exclusions.outputs.version }} + wp-version: ${{ needs.generate-exclusions.outputs.major_version }} upgrade-tests-input-version: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} From 7d971aec743b4bf6efc0a50e44eadf0cf64029b2 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:16:18 -0400 Subject: [PATCH 35/49] Correct variable name --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index b680a1c34b60f..e8aed7a1df234 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -167,7 +167,7 @@ jobs: wp: [ '${{ inputs.new-version }}' ] multisite: [ false, true ] - exclude: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.matrix_exclusions ) || '[]' }} + exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} with: os: ${{ matrix.os }} php: ${{ matrix.php }} From 79a228c74b1f7889142bafb4a0241bf249cc24b5 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:31:05 -0400 Subject: [PATCH 36/49] Required jobs need to be explicitly defined --- .github/workflows/upgrade-testing.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index e8aed7a1df234..72d68472451f1 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -155,6 +155,7 @@ jobs: uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-matrix-for-input-version' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} + needs: [ 'generate-exclusions', 'generate-matrix-for-input-version' ] permissions: contents: read strategy: From 3256f65ab240a3e5e51b7edeba904af77b05136e Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:32:13 -0400 Subject: [PATCH 37/49] Fix bad merge --- .github/workflows/upgrade-testing.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 72d68472451f1..aac021ea022d2 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -153,7 +153,6 @@ jobs: upgrade-tests-input-version: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml - needs: [ 'generate-matrix-for-input-version' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} needs: [ 'generate-exclusions', 'generate-matrix-for-input-version' ] permissions: From 86f3142844cdf5405b6658c4fff3760cc97e5a35 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:33:30 -0400 Subject: [PATCH 38/49] Remove incorrect dependency --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index aac021ea022d2..171e7884542ee 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -181,8 +181,8 @@ jobs: upgrade-tests-recent-releases: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} uses: ./.github/workflows/reusable-upgrade-testing.yml - needs: [ 'generate-exclusions', 'generate-matrix-for-input-version' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} + needs: [ 'generate-exclusions' ] permissions: contents: read strategy: From b619d1b77176ff551928a3c9346b89cc059e6e8b Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:35:08 -0400 Subject: [PATCH 39/49] Update the default exclusions list --- .github/workflows/upgrade-testing.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 171e7884542ee..3e67266ece033 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -84,6 +84,14 @@ jobs: {"php":"7.3","db-version":"8.4"}, {"php":"7.2","db-version":"9.4"}, {"php":"7.3","db-version":"9.4"}, + {"db-version":"5.0"}, + {"db-version":"5.1"}, + {"db-version":"5.5"}, + {"db-version":"9.0"}, + {"db-version":"9.1"}, + {"db-version":"9.2"}, + {"db-version":"9.3"}, + {"db-version":"9.4"}, ]' # The defaults are sufficient when not testing a specific version. From 928344d649a38c4995c63ec3d78893aaa9991569 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Wed, 1 Oct 2025 23:38:54 -0400 Subject: [PATCH 40/49] Simulate dispatch --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 3e67266ece033..c0380672118a4 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -172,7 +172,7 @@ jobs: php: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.php-versions ) }} db-type: [ 'mysql' ] db-version: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.mysql-versions ) }} - wp: [ '${{ inputs.new-version }}' ] + wp: [ '6.1.4' ] multisite: [ false, true ] exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} From 437a6e57e64c4e4f404309e32f2bde75e93af9dc Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 11:37:47 -0400 Subject: [PATCH 41/49] Make version dynamic for testing input version --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index c0380672118a4..23a12038c201e 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -172,7 +172,7 @@ jobs: php: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.php-versions ) }} db-type: [ 'mysql' ] db-version: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.mysql-versions ) }} - wp: [ '6.1.4' ] + wp: [ ${{ needs.generate-exclusions.outputs.major_version }} ] multisite: [ false, true ] exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} From d01ec8d713ac55935ce424e49c72810f50550d07 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 11:38:25 -0400 Subject: [PATCH 42/49] Test 6.4.1 --- .github/workflows/upgrade-testing.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 23a12038c201e..fe47c9860c9f0 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -75,7 +75,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} run: | # 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. # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. @@ -159,7 +159,7 @@ jobs: wp-version: ${{ needs.generate-exclusions.outputs.major_version }} upgrade-tests-input-version: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml if: ${{ github.repository == 'WordPress/wordpress-develop' }} needs: [ 'generate-exclusions', 'generate-matrix-for-input-version' ] @@ -182,12 +182,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml if: ${{ github.repository == 'WordPress/wordpress-develop' }} needs: [ 'generate-exclusions' ] @@ -210,12 +210,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 6.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7 & 8. upgrade-tests-wp-6x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -238,12 +238,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -266,7 +266,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8. @@ -275,7 +275,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-wp-5x-php-8x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -298,7 +298,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} # The oldest version of WordPress receiving security updates should always be tested against @@ -308,7 +308,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-oldest-wp-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -331,7 +331,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.1.4' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} multisite: ${{ matrix.multisite }} slack-notifications: From 74839483566361f3d938e8d14d3a8fb6cc57506c Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 11:40:59 -0400 Subject: [PATCH 43/49] Fix syntax error --- .github/workflows/upgrade-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index fe47c9860c9f0..fb766980a2ccf 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -172,7 +172,7 @@ jobs: php: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.php-versions ) }} db-type: [ 'mysql' ] db-version: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.mysql-versions ) }} - wp: [ ${{ needs.generate-exclusions.outputs.major_version }} ] + wp: [ '${{ needs.generate-exclusions.outputs.major_version }}' ] multisite: [ false, true ] exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} From 78975af3e1ea1b82ef0792f614b485087b3cfa5f Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 11:53:42 -0400 Subject: [PATCH 44/49] Some clean up --- .github/workflows/upgrade-testing.yml | 86 ++++++++------------------- 1 file changed, 24 insertions(+), 62 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index fb766980a2ccf..8660ac0d15bc7 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -29,6 +29,22 @@ on: env: CURRENTLY_SUPPORTED_BRANCH: '6.8' OLDEST_SECURITY_BRANCH: '4.7' + # 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. + # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. + DEFAULT_EXCLUSIONS: '[ + { "php": "7.2","db-version": "8.4" }, + { "php": "7.3","db-version": "8.4" }, + { "php": "7.2","db-version": "9.4" }, + { "php": "7.3","db-version": "9.4" }, + { "db-version": "5.0" }, + { "db-version": "5.1" }, + { "db-version": "5.5" }, + { "db-version": "9.0" }, + { "db-version": "9.1" }, + { "db-version": "9.2" }, + { "db-version": "9.3" }, + { "db-version": "9.4" }, + ]' # Cancels all previous workflow runs for pull requests that have not completed. concurrency: @@ -42,7 +58,7 @@ concurrency: permissions: {} # Because the number of jobs spawned can quickly balloon out of control, the following methodology is applied when -# building out the matrix below: +# building out the test matrix for push events: # # - The two most recent releases of WordPress are tested against all PHP/MySQL LTS version combinations and the # most recent innovation release. @@ -60,11 +76,15 @@ permissions: {} # modern architectures. # - 5.6.x Docker containers are available and work, but 5.6 only accounts for ~2.3% of installs as of 12/6/2024.defaults: # - 5.7.x accounts for ~20% of installs, so this is used below instead. +# +# When a workflow_dispatch event occurs, testing stops at the major version branch of the version specified. For +# example, if the value of inputs.new-version is 6.4.4, the jobs testing versions 6.5 and higher will be skipped because +# that would be a downgrade test. jobs: generate-exclusions: - name: Generate test exclusions + name: Create combination exclusion list runs-on: 'ubuntu-24.04' - if: ${{ true || github.repository == 'WordPress/wordpress-develop' }} + if: ${{ github.repository == 'WordPress/wordpress-develop' }} timeout-minutes: 5 outputs: matrix_exclusions: ${{ steps.set-exclusions.outputs.matrix_exclusions }} @@ -77,23 +97,6 @@ jobs: env: NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} run: | - # 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. - # MySQL 9.0+ will also not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. - DEFAULT_EXCLUSIONS='[ - {"php":"7.2","db-version":"8.4"}, - {"php":"7.3","db-version":"8.4"}, - {"php":"7.2","db-version":"9.4"}, - {"php":"7.3","db-version":"9.4"}, - {"db-version":"5.0"}, - {"db-version":"5.1"}, - {"db-version":"5.5"}, - {"db-version":"9.0"}, - {"db-version":"9.1"}, - {"db-version":"9.2"}, - {"db-version":"9.3"}, - {"db-version":"9.4"}, - ]' - # The defaults are sufficient when not testing a specific version. if [[ -z "$NEW_VERSION" ]] || \ [[ "$NEW_VERSION" == "latest" ]] || \ @@ -144,47 +147,6 @@ jobs: echo "matrix_exclusions=$(echo "${DEFAULT_EXCLUSIONS%]}${GENERATED_EXCLUSIONS}" | tr -d '\n' | tr -d ' ')" >> "$GITHUB_OUTPUT" - # The full list of combinations for a specified version should always be tested. - # - # Since all supported combinations are already tested for the WordPress versions listed in the upgrade-tests-recent-releases - # job, those versions should be excluded here to avoid duplicate testing. - generate-matrix-for-input-version: - name: Build Test Matrix for Input Version - uses: ./.github/workflows/reusable-support-json-reader-v1.yml - needs: [ 'generate-exclusions' ] - permissions: - contents: read - if: ${{ true || github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' && ! contains( fromJSON('["6.7", "6.8"]'), needs.generate-exclusions.outputs.major_version ) }} - with: - wp-version: ${{ needs.generate-exclusions.outputs.major_version }} - - upgrade-tests-input-version: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} - uses: ./.github/workflows/reusable-upgrade-testing.yml - if: ${{ github.repository == 'WordPress/wordpress-develop' }} - needs: [ 'generate-exclusions', 'generate-matrix-for-input-version' ] - permissions: - contents: read - strategy: - fail-fast: false - matrix: - os: [ 'ubuntu-24.04' ] - php: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.php-versions ) }} - db-type: [ 'mysql' ] - db-version: ${{ fromJSON( needs.generate-matrix-for-input-version.outputs.mysql-versions ) }} - wp: [ '${{ needs.generate-exclusions.outputs.major_version }}' ] - multisite: [ false, true ] - - exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} - with: - os: ${{ matrix.os }} - php: ${{ matrix.php }} - db-type: ${{ matrix.db-type }} - db-version: ${{ matrix.db-version }} - wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} - multisite: ${{ matrix.multisite }} - # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} @@ -340,7 +302,7 @@ jobs: permissions: actions: read contents: read - needs: [ generate-exclusions, upgrade-tests-recent-releases, upgrade-tests-input-version, upgrade-tests-wp-6x-mysql, upgrade-tests-wp-5x-php-7x-mysql, upgrade-tests-wp-5x-php-8x-mysql, upgrade-tests-oldest-wp-mysql ] + needs: [ generate-exclusions, upgrade-tests-recent-releases, upgrade-tests-wp-6x-mysql, upgrade-tests-wp-5x-php-7x-mysql, upgrade-tests-wp-5x-php-8x-mysql, upgrade-tests-oldest-wp-mysql ] 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' }} From 615f1980af076688706edcce309914f898bd03d1 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 12:19:04 -0400 Subject: [PATCH 45/49] Add inline docs --- .github/workflows/upgrade-testing.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 8660ac0d15bc7..a10972e61314a 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -81,6 +81,10 @@ permissions: {} # example, if the value of inputs.new-version is 6.4.4, the jobs testing versions 6.5 and higher will be skipped because # that would be a downgrade test. jobs: + # Generates a list of combinations to exclude in for each test matrix based on the version of WordPress being tested. + # + # When a major version is being tested (6.4 or 6.4.0), no upgrade would occur, so that version is excluded. + # When a minor version is being tested (6.4.1, 6.4.2, etc), the corresponding major version (6.4) is tested. generate-exclusions: name: Create combination exclusion list runs-on: 'ubuntu-24.04' From bd6634848774e85c914386db1a94ff1ef8ed36a1 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 12:24:48 -0400 Subject: [PATCH 46/49] Remove database versions. Not required here --- .github/workflows/upgrade-testing.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index a10972e61314a..f7ca8bd07cb96 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -36,14 +36,6 @@ env: { "php": "7.3","db-version": "8.4" }, { "php": "7.2","db-version": "9.4" }, { "php": "7.3","db-version": "9.4" }, - { "db-version": "5.0" }, - { "db-version": "5.1" }, - { "db-version": "5.5" }, - { "db-version": "9.0" }, - { "db-version": "9.1" }, - { "db-version": "9.2" }, - { "db-version": "9.3" }, - { "db-version": "9.4" }, ]' # Cancels all previous workflow runs for pull requests that have not completed. From 6154f8f7fe41059c0509e20630a4fc592a6c5678 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 12:26:25 -0400 Subject: [PATCH 47/49] Test 6.0.0 --- .github/workflows/upgrade-testing.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index f7ca8bd07cb96..7faed15134ec5 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -76,7 +76,7 @@ jobs: # Generates a list of combinations to exclude in for each test matrix based on the version of WordPress being tested. # # When a major version is being tested (6.4 or 6.4.0), no upgrade would occur, so that version is excluded. - # When a minor version is being tested (6.4.1, 6.4.2, etc), the corresponding major version (6.4) is tested. + # When a minor version is being tested (6.0.0, 6.4.2, etc), the corresponding major version (6.4) is tested. generate-exclusions: name: Create combination exclusion list runs-on: 'ubuntu-24.04' @@ -91,7 +91,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} run: | # The defaults are sufficient when not testing a specific version. if [[ -z "$NEW_VERSION" ]] || \ @@ -145,7 +145,7 @@ jobs: # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml if: ${{ github.repository == 'WordPress/wordpress-develop' }} needs: [ 'generate-exclusions' ] @@ -168,12 +168,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} # Tests 6.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7 & 8. upgrade-tests-wp-6x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -196,12 +196,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -224,7 +224,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8. @@ -233,7 +233,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-wp-5x-php-8x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -256,7 +256,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} # The oldest version of WordPress receiving security updates should always be tested against @@ -266,7 +266,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-oldest-wp-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -289,7 +289,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.4.1' }} + new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} multisite: ${{ matrix.multisite }} slack-notifications: From a33cf11b428fb77230a995c68c4760ed16b13bd2 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 12:29:01 -0400 Subject: [PATCH 48/49] Test 5.9 --- .github/workflows/upgrade-testing.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 7faed15134ec5..1e7a3956f5c70 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -76,9 +76,9 @@ jobs: # Generates a list of combinations to exclude in for each test matrix based on the version of WordPress being tested. # # When a major version is being tested (6.4 or 6.4.0), no upgrade would occur, so that version is excluded. - # When a minor version is being tested (6.0.0, 6.4.2, etc), the corresponding major version (6.4) is tested. + # When a minor version is being tested (6.4.1, 6.4.2, etc), the corresponding major version (6.4) is tested. generate-exclusions: - name: Create combination exclusion list + name: Build a list of matrix exclusions runs-on: 'ubuntu-24.04' if: ${{ github.repository == 'WordPress/wordpress-develop' }} timeout-minutes: 5 @@ -91,7 +91,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '5.9' }} run: | # The defaults are sufficient when not testing a specific version. if [[ -z "$NEW_VERSION" ]] || \ @@ -145,7 +145,7 @@ jobs: # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} uses: ./.github/workflows/reusable-upgrade-testing.yml if: ${{ github.repository == 'WordPress/wordpress-develop' }} needs: [ 'generate-exclusions' ] @@ -168,12 +168,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} multisite: ${{ matrix.multisite }} # Tests 6.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7 & 8. upgrade-tests-wp-6x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -196,12 +196,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -224,7 +224,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8. @@ -233,7 +233,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-wp-5x-php-8x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -256,7 +256,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} multisite: ${{ matrix.multisite }} # The oldest version of WordPress receiving security updates should always be tested against @@ -266,7 +266,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-oldest-wp-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -289,7 +289,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '6.0.0' }} + new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} multisite: ${{ matrix.multisite }} slack-notifications: From afab13aed58cc0eb0de9de0ecfaa30308bc5c2e3 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 2 Oct 2025 13:13:35 -0400 Subject: [PATCH 49/49] Test `v5.5.10` --- .github/workflows/upgrade-testing.yml | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index 1e7a3956f5c70..c6f6b2e999013 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -76,7 +76,7 @@ jobs: # Generates a list of combinations to exclude in for each test matrix based on the version of WordPress being tested. # # When a major version is being tested (6.4 or 6.4.0), no upgrade would occur, so that version is excluded. - # When a minor version is being tested (6.4.1, 6.4.2, etc), the corresponding major version (6.4) is tested. + # When a minor version is being tested (6.4.1, 6.4.2, etc.), the corresponding major version (6.4) is tested. generate-exclusions: name: Build a list of matrix exclusions runs-on: 'ubuntu-24.04' @@ -91,7 +91,7 @@ jobs: id: set-exclusions shell: bash env: - NEW_VERSION: ${{ inputs.new-version && inputs.new-version || '5.9' }} + NEW_VERSION: ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} run: | # The defaults are sufficient when not testing a specific version. if [[ -z "$NEW_VERSION" ]] || \ @@ -145,7 +145,7 @@ jobs: # Tests the full list of PHP/MySQL combinations for the two most recent versions of WordPress. upgrade-tests-recent-releases: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} uses: ./.github/workflows/reusable-upgrade-testing.yml if: ${{ github.repository == 'WordPress/wordpress-develop' }} needs: [ 'generate-exclusions' ] @@ -168,12 +168,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} + new-version: ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} multisite: ${{ matrix.multisite }} # Tests 6.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7 & 8. upgrade-tests-wp-6x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -196,12 +196,12 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} + new-version: ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -214,7 +214,7 @@ jobs: php: [ '7.2', '7.4' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.4' ] - wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', '5.9' ] + wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', 'v5.5.10' ] multisite: [ false, true ] exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} @@ -224,7 +224,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} + new-version: ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} multisite: ${{ matrix.multisite }} # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8. @@ -233,7 +233,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-wp-5x-php-8x-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -246,7 +246,7 @@ jobs: php: [ '8.0', '8.4' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.4' ] - wp: [ '5.3', '5.4', '5.5', '5.6', '5.9' ] + wp: [ '5.3', '5.4', '5.5', '5.6', 'v5.5.10' ] multisite: [ false, true ] exclude: ${{ fromJSON( needs.generate-exclusions.outputs.matrix_exclusions ) || '[]' }} @@ -256,7 +256,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} + new-version: ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} multisite: ${{ matrix.multisite }} # The oldest version of WordPress receiving security updates should always be tested against @@ -266,7 +266,7 @@ jobs: # - Use of __autoload(). # - array/string offset with curly braces. upgrade-tests-oldest-wp-mysql: - name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || '5.9' }} + name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} uses: ./.github/workflows/reusable-upgrade-testing.yml needs: [ 'generate-exclusions' ] if: ${{ github.repository == 'WordPress/wordpress-develop' }} @@ -289,7 +289,7 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} wp: ${{ matrix.wp }} - new-version: ${{ inputs.new-version && inputs.new-version || '5.9' }} + new-version: ${{ inputs.new-version && inputs.new-version || 'v5.5.10' }} multisite: ${{ matrix.multisite }} slack-notifications: