@@ -118,6 +118,11 @@ jobs:
118118 "wp": "latest",
119119 "mysql": "mysql-8.0"
120120 },
121+ {
122+ "php": "8.3",
123+ "wp": "latest",
124+ "mysql": "mysql-8.4"
125+ },
121126 {
122127 "php": "8.3",
123128 "wp": "latest",
@@ -134,6 +139,11 @@ jobs:
134139 "wp": "latest",
135140 "mysql": "mysql-8.0"
136141 },
142+ {
143+ "php": "8.4",
144+ "wp": "latest",
145+ "mysql": "mysql-8.4"
146+ },
137147 {
138148 "php": "8.4",
139149 "wp": "latest",
@@ -151,6 +161,11 @@ jobs:
151161 "mysql": "mysql-8.0",
152162 "coverage": true
153163 },
164+ {
165+ "php": "8.5",
166+ "wp": "latest",
167+ "mysql": "mysql-8.4"
168+ },
154169 {
155170 "php": "8.5",
156171 "wp": "latest",
@@ -212,6 +227,11 @@ jobs:
212227 "wp": "trunk",
213228 "mysql": "mysql-8.0"
214229 },
230+ {
231+ "php": "8.3",
232+ "wp": "trunk",
233+ "mysql": "mysql-8.4"
234+ },
215235 {
216236 "php": "8.3",
217237 "wp": "trunk",
@@ -228,6 +248,11 @@ jobs:
228248 "wp": "trunk",
229249 "mysql": "mysql-8.0"
230250 },
251+ {
252+ "php": "8.4",
253+ "wp": "trunk",
254+ "mysql": "mysql-8.4"
255+ },
231256 {
232257 "php": "8.4",
233258 "wp": "trunk",
@@ -244,6 +269,11 @@ jobs:
244269 "wp": "trunk",
245270 "mysql": "mysql-8.0"
246271 },
272+ {
273+ "php": "8.5",
274+ "wp": "trunk",
275+ "mysql": "mysql-8.4"
276+ },
247277 {
248278 "php": "8.5",
249279 "wp": "trunk",
@@ -260,6 +290,11 @@ jobs:
260290 "wp": "trunk",
261291 "mysql": "mysql-8.0"
262292 },
293+ {
294+ "php": "nightly",
295+ "wp": "trunk",
296+ "mysql": "mysql-8.4"
297+ },
263298 {
264299 "php": "nightly",
265300 "wp": "trunk",
@@ -505,6 +540,21 @@ jobs:
505540 # Bust the cache at least once a month - output format: YYYY-MM.
506541 custom-cache-suffix : $(date -u "+%Y-%m")
507542
543+ - name : Determine MySQL authentication configuration
544+ id : mysql-config
545+ if : ${{ matrix.dbtype != 'sqlite' }}
546+ run : |
547+ if [[ "${{ matrix.mysql }}" == *"mysql-8.4"* ]]; then
548+ # MySQL 8.4 requires explicit loading of mysql_native_password plugin
549+ echo "auth-config<<EOF" >> $GITHUB_OUTPUT
550+ echo "mysql_native_password=ON" >> $GITHUB_OUTPUT
551+ echo "authentication_policy=mysql_native_password," >> $GITHUB_OUTPUT
552+ echo "EOF" >> $GITHUB_OUTPUT
553+ else
554+ # MySQL 5.6, 5.7, 8.0 and MariaDB use the legacy configuration
555+ echo "auth-config=default_authentication_plugin=mysql_native_password" >> $GITHUB_OUTPUT
556+ fi
557+
508558 - name : Setup MySQL Server
509559 id : setup-mysql
510560 if : ${{ matrix.dbtype != 'sqlite' }}
@@ -516,7 +566,7 @@ jobs:
516566 user : ${{ env.WP_CLI_TEST_DBUSER}}
517567 password : ${{ env.WP_CLI_TEST_DBPASS}}
518568 my-cnf : |
519- default_authentication_plugin=mysql_native_password
569+ ${{ steps.mysql-config.outputs.auth-config }}
520570
521571 - name : Prepare test database
522572 if : ${{ matrix.dbtype != 'sqlite' }}
0 commit comments