4747 os : [ ubuntu-latest ]
4848 php : [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ]
4949 db-type : [ 'mysql' ]
50- db-version : [ '5.7', '8.0', '8.4', '9.0' ]
50+ db-version : [ '5.7', '8.0', '8.4' ]
5151 tests-domain : [ 'example.org' ]
5252 multisite : [ false, true ]
5353 memcached : [ false ]
9191 multisite : false
9292 memcached : false
9393 report : true
94-
95- exclude :
96- # MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218.
97- - php : ' 7.2'
98- db-version : ' 9.0'
99- - php : ' 7.3'
100- db-version : ' 9.0'
101-
10294 with :
10395 os : ${{ matrix.os }}
10496 php : ${{ matrix.php }}
@@ -126,7 +118,7 @@ jobs:
126118 os : [ ubuntu-latest ]
127119 php : [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ]
128120 db-type : [ 'mariadb' ]
129- db-version : [ '10.4', '10.6', '10.11', '11.2 ' ]
121+ db-version : [ '5.5', ' 10.3', '10. 4', '10.5', '10. 6', '10.11', '11.4 ' ]
130122 multisite : [ false, true ]
131123 memcached : [ false ]
132124
@@ -135,13 +127,13 @@ jobs:
135127 - os : ubuntu-latest
136128 php : ' 8.3'
137129 db-type : ' mariadb'
138- db-version : ' 11.2 '
130+ db-version : ' 11.4 '
139131 multisite : false
140132 memcached : true
141133 - os : ubuntu-latest
142134 php : ' 8.3'
143135 db-type : ' mariadb'
144- db-version : ' 11.2 '
136+ db-version : ' 11.4 '
145137 multisite : true
146138 memcached : true
147139 with :
@@ -154,6 +146,55 @@ jobs:
154146 phpunit-config : ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }}
155147 report : ${{ matrix.report || false }}
156148
149+ #
150+ # Creates PHPUnit test jobs to test MariaDB and MySQL innovation releases.
151+ #
152+ # Though innovation releases are deemed "production grade" and never receive LTS status, they include new features
153+ # and updates that will be included in the next LTS version.
154+ #
155+ # Because upstream support for innovation releases gets dropped when a new one is released, only the most recent
156+ # innovation version is tested.
157+ #
158+ test-innovation-releases :
159+ name : PHP ${{ matrix.php }}
160+ uses : WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk
161+ permissions :
162+ contents : read
163+ secrets : inherit
164+ if : ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
165+ strategy :
166+ fail-fast : false
167+ matrix :
168+ os : [ ubuntu-latest ]
169+ php : [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ]
170+ db-type : [ 'mysql', 'mariadb' ]
171+ db-version : [ '9.1', '11.6' ]
172+ multisite : [ false, true ]
173+ memcached : [ false ]
174+ db-innovation : [ true ]
175+
176+ exclude :
177+ # MySQL 9.0+ will not work on PHP <= 7.3 because mysql_native_password was removed. See https://core.trac.wordpress.org/ticket/61218.
178+ - php : ' 7.2'
179+ db-version : ' 9.1'
180+ - php : ' 7.3'
181+ db-version : ' 9.1'
182+ # Exclude version combinations that don't exist.
183+ - db-type : ' mariadb'
184+ db-version : ' 9.1'
185+ - db-type : ' mysql'
186+ db-version : ' 11.6'
187+ with :
188+ os : ${{ matrix.os }}
189+ php : ${{ matrix.php }}
190+ db-type : ${{ matrix.db-type }}
191+ db-version : ${{ matrix.db-version }}
192+ db-innovation : ${{ matrix.db-innovation }}
193+ multisite : ${{ matrix.multisite }}
194+ memcached : ${{ matrix.memcached }}
195+ phpunit-config : ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }}
196+ report : ${{ matrix.report || false }}
197+
157198 #
158199 # Runs specific individual test groups.
159200 #
@@ -183,7 +224,7 @@ jobs:
183224 permissions :
184225 actions : read
185226 contents : read
186- needs : [ test-with-mysql, test-with-mariadb, specific-test-groups ]
227+ needs : [ test-with-mysql, test-with-mariadb, test-innovation-releases, specific-test-groups ]
187228 if : ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }}
188229 with :
189230 calling_status : ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }}
0 commit comments