From 55b6047845a16f40aa0f818e9c1339d56e56acc5 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 5 Nov 2026 16:33:41 -0500 Subject: [PATCH 1/2] Build/Test Tools: Update GitHub-hosted runners to Ubuntu 26.04. This updates the GitHub-hosted Ubuntu runners used in GitHub Actions workflows to `ubuntu-26.04`. The pinned version of actionlint does not recognize the new label yet, so it is registered in `.github/actionlint.yaml` for the time being. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_011Y86gzNmrCaBaUCqQTNKYH --- .github/actionlint.yaml | 5 +++++ .github/workflows/coding-standards.yml | 2 +- .github/workflows/end-to-end-tests.yml | 2 +- .github/workflows/javascript-tests.yml | 2 +- .../workflows/local-docker-environment.yml | 4 ++-- .github/workflows/performance.yml | 4 ++-- .github/workflows/php-compatibility.yml | 2 +- .github/workflows/phpunit-tests.yml | 22 +++++++++---------- .github/workflows/props-bot.yml | 2 +- .github/workflows/pull-request-comments.yml | 6 ++--- .github/workflows/test-build-processes.yml | 8 +++---- .github/workflows/upgrade-develop-testing.yml | 6 ++--- .github/workflows/workflow-lint.yml | 2 +- 13 files changed, 36 insertions(+), 31 deletions(-) create mode 100644 .github/actionlint.yaml diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 0000000000000..1987681088a3b --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,5 @@ +# actionlint does not recognize the `ubuntu-26.04` GitHub-hosted runner label yet. +# This can be removed once the pinned actionlint version includes it in its list of known labels. +self-hosted-runner: + labels: + - ubuntu-26.04 diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml index 56a5961acd741..2e8c4b0f09654 100644 --- a/.github/workflows/coding-standards.yml +++ b/.github/workflows/coding-standards.yml @@ -78,7 +78,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ phpcs, jshint, slack-notifications ] diff --git a/.github/workflows/end-to-end-tests.yml b/.github/workflows/end-to-end-tests.yml index 304000f1a75ba..040111604e998 100644 --- a/.github/workflows/end-to-end-tests.yml +++ b/.github/workflows/end-to-end-tests.yml @@ -84,7 +84,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ e2e-tests, slack-notifications ] diff --git a/.github/workflows/javascript-tests.yml b/.github/workflows/javascript-tests.yml index c3ed5cc593090..0351e0d4df365 100644 --- a/.github/workflows/javascript-tests.yml +++ b/.github/workflows/javascript-tests.yml @@ -71,7 +71,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ slack-notifications ] diff --git a/.github/workflows/local-docker-environment.yml b/.github/workflows/local-docker-environment.yml index 798dd6dae4039..cc5749df8e6ab 100644 --- a/.github/workflows/local-docker-environment.yml +++ b/.github/workflows/local-docker-environment.yml @@ -92,7 +92,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-24.04 ] + os: [ ubuntu-26.04 ] memcached: [ false, true ] php: ${{ fromJSON( needs.build-test-matrix.outputs.php-versions ) }} db-version: ${{ fromJSON( needs.build-test-matrix.outputs.mysql-versions ) }} @@ -139,7 +139,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ build-test-matrix, environment-tests-mysql, slack-notifications ] diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 1ec59131d306f..51f418e62a4dc 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -48,7 +48,7 @@ permissions: {} jobs: determine-matrix: name: Determine Matrix - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 if: ${{ ( github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' ) && ! contains( github.event.before, '00000000' ) }} permissions: actions: read @@ -145,7 +145,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ slack-notifications ] diff --git a/.github/workflows/php-compatibility.yml b/.github/workflows/php-compatibility.yml index 26fd352258b86..3dfb6d407932b 100644 --- a/.github/workflows/php-compatibility.yml +++ b/.github/workflows/php-compatibility.yml @@ -62,7 +62,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ slack-notifications ] diff --git a/.github/workflows/phpunit-tests.yml b/.github/workflows/phpunit-tests.yml index 9e2648f3e5db6..4fabce4c0322d 100644 --- a/.github/workflows/phpunit-tests.yml +++ b/.github/workflows/phpunit-tests.yml @@ -87,7 +87,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-24.04 ] + os: [ ubuntu-26.04 ] php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.0', '8.4' ] @@ -114,14 +114,14 @@ jobs: include: # Include jobs that test with memcached. - - os: ubuntu-24.04 + - os: ubuntu-26.04 php: '8.3' db-type: 'mysql' db-version: '8.4' tests-domain: 'example.org' multisite: false memcached: true - - os: ubuntu-24.04 + - os: ubuntu-26.04 php: '8.3' db-type: 'mysql' db-version: '8.4' @@ -129,14 +129,14 @@ jobs: multisite: true memcached: true # Include jobs with a port on the test domain for both single and multisite. - - os: ubuntu-24.04 + - os: ubuntu-26.04 php: '8.4' db-type: 'mysql' db-version: '8.4' tests-domain: 'example.org:8889' multisite: false memcached: false - - os: ubuntu-24.04 + - os: ubuntu-26.04 php: '8.4' db-type: 'mysql' db-version: '8.4' @@ -144,7 +144,7 @@ jobs: multisite: true memcached: false # Report test results to the Host Test Results. - - os: ubuntu-24.04 + - os: ubuntu-26.04 db-type: 'mysql' db-version: '8.4' tests-domain: 'example.org' @@ -181,7 +181,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-24.04 ] + os: [ ubuntu-26.04 ] php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] db-type: [ 'mariadb' ] db-version: [ '5.5', '10.3', '10.5', '10.6', '10.11', '11.4', '11.8' ] @@ -212,13 +212,13 @@ jobs: include: # Include jobs that test with memcached. - - os: ubuntu-24.04 + - os: ubuntu-26.04 php: '8.3' db-type: 'mariadb' db-version: '11.8' multisite: false memcached: true - - os: ubuntu-24.04 + - os: ubuntu-26.04 php: '8.3' db-type: 'mariadb' db-version: '11.8' @@ -255,7 +255,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-24.04 ] + os: [ ubuntu-26.04 ] php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] db-type: [ 'mysql', 'mariadb' ] db-version: [ '9.4', '12.0' ] @@ -406,7 +406,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ slack-notifications ] diff --git a/.github/workflows/props-bot.yml b/.github/workflows/props-bot.yml index a8656eb5ce1a9..ecbe732f0497e 100644 --- a/.github/workflows/props-bot.yml +++ b/.github/workflows/props-bot.yml @@ -48,7 +48,7 @@ jobs: # - Removes the props-bot label, if necessary. props-bot: name: Generate a list of props - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: # The action needs permission `write` permission for PRs in order to add a comment. pull-requests: write diff --git a/.github/workflows/pull-request-comments.yml b/.github/workflows/pull-request-comments.yml index dc7e6e7c7a7e6..acfffccd5a92a 100644 --- a/.github/workflows/pull-request-comments.yml +++ b/.github/workflows/pull-request-comments.yml @@ -22,7 +22,7 @@ permissions: {} jobs: # Comments on a pull request when the author is a first time contributor. post-welcome-message: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: issues: write pull-requests: write @@ -80,7 +80,7 @@ jobs: # Leaves a comment on a pull request with a link to test the changes in a WordPress Playground instance. playground-details: name: Comment on a pull request with Playground details - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: issues: write pull-requests: write @@ -184,7 +184,7 @@ jobs: # Manages comments reminding contributors to include a Trac ticket link when opening a pull request. trac-ticket-check: name: Manage Trac ticket reminders for pull requests - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: issues: write pull-requests: write diff --git a/.github/workflows/test-build-processes.yml b/.github/workflows/test-build-processes.yml index beb8c5f3a3c11..3b2f4bc468021 100644 --- a/.github/workflows/test-build-processes.yml +++ b/.github/workflows/test-build-processes.yml @@ -54,12 +54,12 @@ jobs: strategy: fail-fast: false matrix: - os: [ 'ubuntu-24.04' ] + os: [ 'ubuntu-26.04' ] directory: [ 'src', 'build' ] test-certificates: [ true ] include: # Only prepare artifacts for Playground once. - - os: 'ubuntu-24.04' + - os: 'ubuntu-26.04' directory: 'build' save-build: true prepare-playground: ${{ github.event_name == 'pull_request' && true || '' }} @@ -105,7 +105,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ 'ubuntu-24.04' ] + os: [ 'ubuntu-26.04' ] directory: [ 'src', 'build' ] with: os: ${{ matrix.os }} @@ -156,7 +156,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ slack-notifications ] diff --git a/.github/workflows/upgrade-develop-testing.yml b/.github/workflows/upgrade-develop-testing.yml index 71f044dfe0ae5..5125f64e76dcb 100644 --- a/.github/workflows/upgrade-develop-testing.yml +++ b/.github/workflows/upgrade-develop-testing.yml @@ -59,7 +59,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ 'ubuntu-24.04' ] + os: [ 'ubuntu-26.04' ] php: [ '7.2', '8.4' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.4' ] @@ -94,7 +94,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ 'ubuntu-24.04' ] + os: [ 'ubuntu-26.04' ] php: [ '7.2', '8.4' ] db-type: [ 'mysql' ] db-version: [ '8.4' ] @@ -133,7 +133,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ slack-notifications ] diff --git a/.github/workflows/workflow-lint.yml b/.github/workflows/workflow-lint.yml index 774d621151408..4966d785281b3 100644 --- a/.github/workflows/workflow-lint.yml +++ b/.github/workflows/workflow-lint.yml @@ -57,7 +57,7 @@ jobs: failed-workflow: name: Failed workflow tasks - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: actions: write needs: [ slack-notifications ] From b69f82506b422ecf2f0d39bd9b8b754da6fe5f1e Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 5 Nov 2026 16:33:43 -0500 Subject: [PATCH 2/2] Build/Test Tools: Update Playwright to 1.64.1. Update `@playwright/test` from `1.56.1` to `1.64.1`, along with its `playwright` and `playwright-core` dependencies. Playwright 1.61.0 is the first version that supports Ubuntu 26.04. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_011Y86gzNmrCaBaUCqQTNKYH --- package-lock.json | 33 +++++++++++++++------------------ package.json | 2 +- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index d76684b015a7d..08988de5aeb04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -108,7 +108,7 @@ }, "devDependencies": { "@lodder/grunt-postcss": "^3.1.1", - "@playwright/test": "1.56.1", + "@playwright/test": "1.64.1", "@pmmmwh/react-refresh-webpack-plugin": "0.6.1", "@wordpress/babel-preset-default": "8.33.1", "@wordpress/dependency-extraction-webpack-plugin": "6.33.1", @@ -4295,19 +4295,19 @@ } }, "node_modules/@playwright/test": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz", - "integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.64.1.tgz", + "integrity": "sha512-IaYGml/nSOiZWROfPtuIL7neuu9qDOZ3TNvNljUIrhDMxiGTgPjzj/g9p9RxpS2tSepPDRY+UwAaEeiKtUvIAg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.56.1" + "playwright": "1.64.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { @@ -27906,35 +27906,32 @@ } }, "node_modules/playwright": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz", - "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz", + "integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.56.1" + "playwright-core": "1.64.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "2.3.2" + "node": ">=20" } }, "node_modules/playwright-core": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", - "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", + "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", "dev": true, "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/plur": { diff --git a/package.json b/package.json index 7babfc6e8e87a..2aa1e9c31f9a0 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ ], "devDependencies": { "@lodder/grunt-postcss": "^3.1.1", - "@playwright/test": "1.56.1", + "@playwright/test": "1.64.1", "@pmmmwh/react-refresh-webpack-plugin": "0.6.1", "@wordpress/babel-preset-default": "8.33.1", "@wordpress/dependency-extraction-webpack-plugin": "6.33.1",