From a5813fcb497c443855bcd17e317cc2bf66baf60f Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 5 Nov 2026 16:33:12 -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/javascript-type-checking.yml | 2 +- .../workflows/local-docker-environment.yml | 4 ++-- .github/workflows/performance.yml | 4 ++-- .github/workflows/php-compatibility.yml | 2 +- .github/workflows/phpstan-static-analysis.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 | 6 ++--- .github/workflows/upgrade-develop-testing.yml | 6 ++--- .github/workflows/workflow-lint.yml | 2 +- 15 files changed, 37 insertions(+), 32 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 ca7bed7591e1f..78429fae28c0b 100644 --- a/.github/workflows/end-to-end-tests.yml +++ b/.github/workflows/end-to-end-tests.yml @@ -85,7 +85,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 a06a37afb3321..104f7b7940995 100644 --- a/.github/workflows/javascript-tests.yml +++ b/.github/workflows/javascript-tests.yml @@ -73,7 +73,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/javascript-type-checking.yml b/.github/workflows/javascript-type-checking.yml index 01422a6d7d7ac..30fd56097f7d6 100644 --- a/.github/workflows/javascript-type-checking.yml +++ b/.github/workflows/javascript-type-checking.yml @@ -66,7 +66,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 1adbaff8d8c8f..b8143ddce44fb 100644 --- a/.github/workflows/local-docker-environment.yml +++ b/.github/workflows/local-docker-environment.yml @@ -94,7 +94,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 ) }} @@ -138,7 +138,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 dc83e2a9d297b..6c966b13ac871 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -50,7 +50,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 @@ -147,7 +147,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/phpstan-static-analysis.yml b/.github/workflows/phpstan-static-analysis.yml index a9e2c787725e2..1910fb83939d7 100644 --- a/.github/workflows/phpstan-static-analysis.yml +++ b/.github/workflows/phpstan-static-analysis.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 39942d787f07e..fd3e4d59f38dc 100644 --- a/.github/workflows/phpunit-tests.yml +++ b/.github/workflows/phpunit-tests.yml @@ -96,7 +96,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-24.04 ] + os: [ ubuntu-26.04 ] php: [ '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' ] @@ -121,14 +121,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' @@ -136,14 +136,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' @@ -151,7 +151,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' @@ -191,7 +191,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-24.04 ] + os: [ ubuntu-26.04 ] php: [ '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' ] @@ -220,13 +220,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' @@ -266,7 +266,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ ubuntu-24.04 ] + os: [ ubuntu-26.04 ] php: [ '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] db-type: [ 'mysql', 'mariadb' ] db-version: [ '9.6', '12.1' ] @@ -418,7 +418,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 da30e2feb7f11..c953814bea577 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 @@ -183,7 +183,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 ef67633d2ff03..76930ba896168 100644 --- a/.github/workflows/test-build-processes.yml +++ b/.github/workflows/test-build-processes.yml @@ -55,12 +55,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 || '' }} @@ -114,7 +114,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 e09c1049f3674..c6d3c06296c85 100644 --- a/.github/workflows/upgrade-develop-testing.yml +++ b/.github/workflows/upgrade-develop-testing.yml @@ -67,7 +67,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ 'ubuntu-24.04' ] + os: [ 'ubuntu-26.04' ] php: [ '7.4', '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.4', '8.4' ] db-type: [ 'mysql' ] db-version: [ '8.4' ] @@ -127,7 +127,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 0c7232b6d3310266a9aa008e37f50e7371e2716b Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Date: Thu, 5 Nov 2026 16:33:15 -0500 Subject: [PATCH 2/2] Build/Test Tools: Update Playwright to 1.64.1. Update `@playwright/test` from `1.58.2` 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 8a7350ce5b6e5..8007906440d48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ }, "devDependencies": { "@lodder/grunt-postcss": "^3.1.1", - "@playwright/test": "1.58.2", + "@playwright/test": "1.64.1", "@pmmmwh/react-refresh-webpack-plugin": "0.6.2", "@types/codemirror": "5.60.17", "@types/espree": "10.1.0", @@ -4426,19 +4426,19 @@ } }, "node_modules/@playwright/test": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz", - "integrity": "sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==", + "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.58.2" + "playwright": "1.64.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { @@ -26298,35 +26298,32 @@ } }, "node_modules/playwright": { - "version": "1.58.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.58.2.tgz", - "integrity": "sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==", + "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.58.2" + "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.58.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.58.2.tgz", - "integrity": "sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==", + "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 7fea4f7056ea2..d3610c4f930e9 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ ], "devDependencies": { "@lodder/grunt-postcss": "^3.1.1", - "@playwright/test": "1.58.2", + "@playwright/test": "1.64.1", "@pmmmwh/react-refresh-webpack-plugin": "0.6.2", "@types/codemirror": "5.60.17", "@types/espree": "10.1.0",