<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[59508] trunk/.github/workflows/upgrade-testing.yml: Build/Test Tools: Trim down the upgrade testing matrix.</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/59508">59508</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/59508","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>desrosj</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2024-12-13 15:32:55 +0000 (Fri, 13 Dec 2024)</dd>
</dl>
<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Build/Test Tools: Trim down the upgrade testing matrix.
The upgrade testing workflow is currently at ~978 jobs spawned from the strategy matrix. While it's great to test all possible combinations, GitHub's UI cannot keep up with tracking that number of jobs, often taking 30-45 minutes to accurately report the outcome even though the jobs themselves all complete in under 5 minutes.
This is 2x the total number of concurrent jobs allowed for the entire organization (which creates a backlog and slows everything down even more).
This trims down the number of combinations included in the testing matrices to be a bit more thoughtful following the following methodology:
- The last two releases of WordPress are tested against all PHP and MySQL LTS version combinations and the most recent innovation release.
- The next 6 oldest versions of WordPress are tested against both the oldest and newest releases of PHP currently supported for both PHP 7 & 8 along with the oldest and newest MySQL LTS versions currently supported (no innovation releases).
- For the remaining versions of WordPress receiving security updates, they are only included if the database version was different that the previous major release.
- The oldest version of WordPress receiving security updates should always be tested against the same full list of combinations as the last two releases.
When choosing which MySQL versions to test against:
- Only the most recent innovation release should be included in testing.
- Even though MySQL >= 5.5.5 is currently supported, there are no 5.5.x Docker containers available that work on 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.
With these changes, the total number of jobs is reduced by ~58%.
Props johnbillion, mukesh27.
See <a href="https://core.trac.wordpress.org/ticket/62221">#62221</a>.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkgithubworkflowsupgradetestingyml">trunk/.github/workflows/upgrade-testing.yml</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkgithubworkflowsupgradetestingyml"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/.github/workflows/upgrade-testing.yml</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/.github/workflows/upgrade-testing.yml 2024-12-13 14:57:56 UTC (rev 59507)
+++ trunk/.github/workflows/upgrade-testing.yml 2024-12-13 15:32:55 UTC (rev 59508)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,3 +1,6 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+# Confirms that updating WordPress using WP-CLI works successfully.
+#
+# This workflow is not meant to test wordpress-develop checkouts, but rather tagged versions officially available on WordPress.org.
</ins><span class="cx" style="display: block; padding: 0 10px"> name: Upgrade Tests
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> on:
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -31,9 +34,28 @@
</span><span class="cx" style="display: block; padding: 0 10px"> # Any needed permissions should be configured at the job level.
</span><span class="cx" style="display: block; padding: 0 10px"> permissions: {}
</span><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+# Because the number of jobs spawned can quickly balloon out of control, the following methodology is applied when
+# building out the matrix below:
+#
+# - The last two releases of WordPress are tested against all PHP/MySQL LTS version combinations and the most recent
+# innovation release.
+# - The next 6 oldest versions of WordPress are tested against both the oldest and newest releases of PHP currently
+# supported for both PHP 7 & 8 along with the oldest and newest MySQL LTS versions currently supported (no innovation
+# releases). At the current 3 releases per year pace, this accounts for 2 additional years worth of releases.
+# - Of the remaining versions of WordPress still receiving security updates, only test the ones where the database
+# version was updated since the previous major release.
+# - The oldest version of WordPress receiving security updates should always be tested against the same combinations as
+# detailed for the last two releases.
+
+# Notes about chosen MySQL versions:
+# - Only the most recent innovation release should be included in testing.
+# - Even though MySQL >= 5.5.5 is currently supported, there are no 5.5.x Docker containers available that work on
+# 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.
</ins><span class="cx" style="display: block; padding: 0 10px"> jobs:
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- # Spawns upgrade testing from WordPress 6.x versions on PHP 8.x with MySQL.
- upgrade-tests-wp-6x-php-8x-mysql:
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ # Tests the full list of PHP/MySQL combinations for the last two versions of WordPress.
+ upgrade-tests-last-two-releases:
</ins><span class="cx" style="display: block; padding: 0 10px"> name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk
</span><span class="cx" style="display: block; padding: 0 10px"> if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -43,12 +65,22 @@
</span><span class="cx" style="display: block; padding: 0 10px"> fail-fast: false
</span><span class="cx" style="display: block; padding: 0 10px"> matrix:
</span><span class="cx" style="display: block; padding: 0 10px"> os: [ 'ubuntu-latest' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- php: [ '8.0', '8.1', '8.2', '8.3', '8.4' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> db-type: [ 'mysql' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- db-version: [ '5.7', '8.0', '8.4' ]
- wp: [ '6.0', '6.1', '6.2', '6.3', '6.4', '6.5', '6.6', '6.7' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ db-version: [ '5.7', '8.0', '8.4', '9.1' ]
+ wp: [ '6.6', '6.7' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> multisite: [ false, true ]
</span><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ exclude:
+ - 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
+ - php: '7.2'
+ db-version: '9.1'
+ - php: '7.3'
+ db-version: '9.1'
</ins><span class="cx" style="display: block; padding: 0 10px"> with:
</span><span class="cx" style="display: block; padding: 0 10px"> os: ${{ matrix.os }}
</span><span class="cx" style="display: block; padding: 0 10px"> php: ${{ matrix.php }}
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -58,8 +90,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> multisite: ${{ matrix.multisite }}
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- # Spawns upgrade testing from WordPress 6.x versions on PHP 7.x with MySQL.
- upgrade-tests-wp-6x-php-7x-mysql:
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ # Tests the remaining 6.x releases on the oldest and newest supported versions of PHP 7 & 8.
+ upgrade-tests-wp-6x-mysql:
</ins><span class="cx" style="display: block; padding: 0 10px"> name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk
</span><span class="cx" style="display: block; padding: 0 10px"> if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -69,10 +101,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> fail-fast: false
</span><span class="cx" style="display: block; padding: 0 10px"> matrix:
</span><span class="cx" style="display: block; padding: 0 10px"> os: [ 'ubuntu-latest' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- php: [ '7.2', '7.3', '7.4' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ php: [ '7.2', '7.4', '8.0', '8.4' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> db-type: [ 'mysql' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- db-version: [ '5.7', '8.0', '8.4' ]
- wp: [ '6.0', '6.1', '6.2', '6.3', '6.4', '6.5', '6.6', '6.7' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ db-version: [ '5.7', '8.4' ]
+ wp: [ '6.0', '6.1', '6.2', '6.3', '6.4', '6.5' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> multisite: [ false, true ]
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> exclude:
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -89,7 +121,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> multisite: ${{ matrix.multisite }}
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- # Spawns upgrade testing from WordPress 5.x versions on PHP 7.x with MySQL.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7.
</ins><span class="cx" style="display: block; padding: 0 10px"> upgrade-tests-wp-5x-php-7x-mysql:
</span><span class="cx" style="display: block; padding: 0 10px"> name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -98,10 +130,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> fail-fast: false
</span><span class="cx" style="display: block; padding: 0 10px"> matrix:
</span><span class="cx" style="display: block; padding: 0 10px"> os: [ 'ubuntu-latest' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- php: [ '7.2', '7.3', '7.4' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ php: [ '7.2', '7.4' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> db-type: [ 'mysql' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- db-version: [ '5.7', '8.0', '8.4' ]
- wp: [ '5.0', '5.1', '5.2', '5.3', '5.4', '5.5', '5.6', '5.7', '5.8', '5.9' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ db-version: [ '5.7', '8.4' ]
+ wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', '5.9' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> multisite: [ false, true ]
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> exclude:
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -118,7 +150,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> multisite: ${{ matrix.multisite }}
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- # Spawns upgrade testing from WordPress 5.x versions on PHP 8.x with MySQL.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8.
</ins><span class="cx" style="display: block; padding: 0 10px"> #
</span><span class="cx" style="display: block; padding: 0 10px"> # WordPress 5.0-5.2 are excluded from PHP 8+ testing because of the following fatal errors:
</span><span class="cx" style="display: block; padding: 0 10px"> # - Use of __autoload().
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -131,10 +163,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> fail-fast: false
</span><span class="cx" style="display: block; padding: 0 10px"> matrix:
</span><span class="cx" style="display: block; padding: 0 10px"> os: [ 'ubuntu-latest' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- php: [ '8.0', '8.1', '8.2', '8.3', '8.4' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ php: [ '8.0', '8.4' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> db-type: [ 'mysql' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- db-version: [ '5.7', '8.0', '8.4' ]
- wp: [ '5.3', '5.4', '5.5', '5.6', '5.7', '5.8', '5.9' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ db-version: [ '5.7', '8.4' ]
+ wp: [ '5.3', '5.4', '5.5', '5.6', '5.9' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> multisite: [ false, true ]
</span><span class="cx" style="display: block; padding: 0 10px"> with:
</span><span class="cx" style="display: block; padding: 0 10px"> os: ${{ matrix.os }}
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -145,7 +177,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> multisite: ${{ matrix.multisite }}
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- # Spawns upgrade testing from WordPress 4.x versions on PHP 7.x with MySQL.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ # Tests 4.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7.
+ #
+ # The oldest version of WordPress receiving security updates should always be tested.
</ins><span class="cx" style="display: block; padding: 0 10px"> upgrade-tests-wp-4x-php-7x-mysql:
</span><span class="cx" style="display: block; padding: 0 10px"> name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -154,10 +188,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> fail-fast: false
</span><span class="cx" style="display: block; padding: 0 10px"> matrix:
</span><span class="cx" style="display: block; padding: 0 10px"> os: [ 'ubuntu-latest' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- php: [ '7.2', '7.3', '7.4' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ php: [ '7.2', '7.4' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> db-type: [ 'mysql' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- db-version: [ '5.7', '8.0', '8.4' ]
- wp: [ '4.1', '4.2', '4.3', '4.4', '4.5', '4.6', '4.7', '4.8', '4.9' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ db-version: [ '5.7', '8.4' ]
+ wp: [ '4.1', '4.2', '4.3', '4.4', '4.5', '4.6', '4.7' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> multisite: [ false, true ]
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> exclude:
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -174,8 +208,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> multisite: ${{ matrix.multisite }}
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- # Spawns upgrade testing from WordPress 4.x versions on PHP 8.x with MySQL.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ # Tests 4.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 8.
</ins><span class="cx" style="display: block; padding: 0 10px"> #
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ # The oldest version of WordPress receiving security updates should always be tested.
+ #
</ins><span class="cx" style="display: block; padding: 0 10px"> # WordPress 4.6-4.9 are excluded from PHP 8+ testing because of the following fatal errors:
</span><span class="cx" style="display: block; padding: 0 10px"> # - Use of __autoload().
</span><span class="cx" style="display: block; padding: 0 10px"> # - array/string offset with curly braces.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -187,9 +223,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> fail-fast: false
</span><span class="cx" style="display: block; padding: 0 10px"> matrix:
</span><span class="cx" style="display: block; padding: 0 10px"> os: [ 'ubuntu-latest' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- php: [ '8.0', '8.1', '8.2', '8.3', '8.4' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ php: [ '8.0', '8.4' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> db-type: [ 'mysql' ]
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- db-version: [ '5.7', '8.0', '8.4' ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ db-version: [ '5.7', '8.4' ]
</ins><span class="cx" style="display: block; padding: 0 10px"> wp: [ '4.1', '4.2', '4.3', '4.4', '4.5' ]
</span><span class="cx" style="display: block; padding: 0 10px"> multisite: [ false, true ]
</span><span class="cx" style="display: block; padding: 0 10px"> with:
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -201,6 +237,41 @@
</span><span class="cx" style="display: block; padding: 0 10px"> new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }}
</span><span class="cx" style="display: block; padding: 0 10px"> multisite: ${{ matrix.multisite }}
</span><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ # The oldest version of WordPress receiving security updates should always be tested against
+ # the full list of PHP/MySQL combinations.
+ upgrade-tests-oldest-wp-mysql:
+ name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }}
+ uses: WordPress/wordpress-develop/.github/workflows/reusable-upgrade-testing.yml@trunk
+ if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ 'ubuntu-latest' ]
+ php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ]
+ db-type: [ 'mysql' ]
+ db-version: [ '5.7', '8.0', '8.4', '9.1' ]
+ wp: [ '4.1' ]
+ multisite: [ false, true ]
+
+ exclude:
+ - 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
+ - php: '7.2'
+ db-version: '9.1'
+ - php: '7.3'
+ db-version: '9.1'
+ 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 || 'latest' }}
+ multisite: ${{ matrix.multisite }}
+
</ins><span class="cx" style="display: block; padding: 0 10px"> slack-notifications:
</span><span class="cx" style="display: block; padding: 0 10px"> name: Slack Notifications
</span><span class="cx" style="display: block; padding: 0 10px"> uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -207,7 +278,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> permissions:
</span><span class="cx" style="display: block; padding: 0 10px"> actions: read
</span><span class="cx" style="display: block; padding: 0 10px"> contents: read
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- needs: [ upgrade-tests-wp-6x-php-8x-mysql, upgrade-tests-wp-6x-php-7x-mysql, upgrade-tests-wp-5x-php-7x-mysql, upgrade-tests-wp-5x-php-8x-mysql, upgrade-tests-wp-4x-php-7x-mysql, upgrade-tests-wp-4x-php-8x-mysql ]
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ needs: [ upgrade-tests-last-two-releases, upgrade-tests-wp-6x-mysql, upgrade-tests-wp-5x-php-7x-mysql, upgrade-tests-wp-5x-php-8x-mysql, upgrade-tests-wp-4x-php-7x-mysql, upgrade-tests-wp-4x-php-8x-mysql, upgrade-tests-oldest-wp-mysql ]
</ins><span class="cx" style="display: block; padding: 0 10px"> if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }}
</span><span class="cx" style="display: block; padding: 0 10px"> with:
</span><span class="cx" style="display: block; padding: 0 10px"> calling_status: ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }}
</span></span></pre>
</div>
</div>
</body>
</html>