Skip to content

Add MySQL 8.4 LTS to test matrix#209

Open
Copilot wants to merge 3 commits intomainfrom
copilot/update-reusable-testing-workflow
Open

Add MySQL 8.4 LTS to test matrix#209
Copilot wants to merge 3 commits intomainfrom
copilot/update-reusable-testing-workflow

Conversation

Copy link
Contributor

Copilot AI commented Feb 14, 2026

MySQL 8.4 is the current LTS release. The mysql_native_password plugin is no longer loaded by default, breaking authentication without explicit configuration.

Changes

  • Test matrix: Added MySQL 8.4 configurations for PHP 8.3, 8.4, 8.5, and nightly across WordPress latest and trunk (7 new matrix entries)

  • Authentication config: Added version detection step that conditionally applies:

    • MySQL 8.4: mysql_native_password=ON + authentication_policy=mysql_native_password,
    • MySQL ≤8.0, MariaDB: default_authentication_plugin=mysql_native_password (unchanged)

The configuration step runs before MySQL setup:

- name: Determine MySQL authentication configuration
  run: |
    if [[ "${{ matrix.mysql }}" == *"mysql-8.4"* ]]; then
      echo "auth-config<<EOF" >> $GITHUB_OUTPUT
      echo "mysql_native_password=ON" >> $GITHUB_OUTPUT
      echo "authentication_policy=mysql_native_password," >> $GITHUB_OUTPUT
      echo "EOF" >> $GITHUB_OUTPUT
    else
      echo "auth-config=default_authentication_plugin=mysql_native_password" >> $GITHUB_OUTPUT
    fi

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • php.watch
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node /home/REDACTED/work/_temp/ghcca-node/node/bin/node --enable-source-maps /home/REDACTED/work/_temp/copilot-developer-action-main/dist/index.js (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Run tests against MySQL 8.4</issue_title>
<issue_description>MySQL 8.4 is the current LTS release.

The mysql_native_password extension isn't loaded by default anymore in that release, so that might require some work.

See https://php.watch/articles/fix-php-mysql-84-mysql_native_password-not-loaded</issue_description>

<agent_instructions>Find a way to improve the matrix in the reusable-testing workflow and add this version ti the mix</agent_instructions>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits February 14, 2026 22:42
Co-authored-by: swissspidy <841956+swissspidy@users.noreply.github.com>
Co-authored-by: swissspidy <841956+swissspidy@users.noreply.github.com>
Copilot AI changed the title [WIP] Run tests against MySQL 8.4 in testing workflow Add MySQL 8.4 LTS to test matrix Feb 14, 2026
Copilot AI requested a review from swissspidy February 14, 2026 22:46
@swissspidy swissspidy marked this pull request as ready for review February 15, 2026 11:59
@swissspidy swissspidy requested a review from a team as a code owner February 15, 2026 11:59
Copilot AI review requested due to automatic review settings February 15, 2026 11:59
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds MySQL 8.4 LTS support to the test matrix by introducing 7 new test configurations and implementing version-specific authentication handling for MySQL 8.4's changed mysql_native_password plugin behavior.

Changes:

  • Added 7 MySQL 8.4 test matrix entries for PHP 8.3, 8.4, 8.5, and nightly across WordPress latest and trunk
  • Implemented conditional MySQL authentication configuration that detects MySQL 8.4 and applies the appropriate authentication settings (mysql_native_password=ON and authentication_policy=mysql_native_password, for MySQL 8.4, versus default_authentication_plugin=mysql_native_password for older versions)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request scope:testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Run tests against MySQL 8.4

2 participants