From 162cc9aba9ca7d8a82304169040bba9cdcc99358 Mon Sep 17 00:00:00 2001 From: Lance Willett Date: Tue, 28 Jul 2026 09:03:13 -0700 Subject: [PATCH 1/3] Build/Test Tools: Prepare Gutenberg once in 7.0 PHPUnit workflow --- .github/workflows/phpunit-tests.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.github/workflows/phpunit-tests.yml b/.github/workflows/phpunit-tests.yml index c506e47c00b93..a3080a2cd8529 100644 --- a/.github/workflows/phpunit-tests.yml +++ b/.github/workflows/phpunit-tests.yml @@ -54,6 +54,20 @@ concurrency: permissions: {} jobs: + # Downloads and verifies the Gutenberg build once for all PHPUnit jobs. + # + # This condition is the union of the conditions on the jobs that need it, reduced. + # The org matrices require `WordPress/wordpress-develop` or a pull request, and the + # fork matrix requires a pull request, so `wordpress-develop` or a pull request + # covers every case. Keep it in step with those jobs: a narrower condition orphans + # them, because a job that needs a skipped job is skipped too, and a broader one + # downloads a build that nothing consumes. + prepare-gutenberg: + uses: WordPress/wordpress-develop/.github/workflows/reusable-prepare-gutenberg.yml@trunk + permissions: + contents: read + if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} + # # Creates a PHPUnit test job for each PHP/MySQL combination. # @@ -64,6 +78,7 @@ jobs: test-with-mysql: name: PHP ${{ matrix.php }} uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk + needs: prepare-gutenberg permissions: contents: read secrets: inherit @@ -129,6 +144,8 @@ jobs: phpunit-config: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }} tests-domain: ${{ matrix.tests-domain }} report: ${{ matrix.report || false }} + gutenberg-artifact: gutenberg-build + gutenberg-sha: ${{ needs.prepare-gutenberg.outputs.gutenberg-sha }} # # Creates a PHPUnit test job for each PHP/MariaDB combination. @@ -142,6 +159,7 @@ jobs: test-with-mariadb: name: PHP ${{ matrix.php }} uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk + needs: prepare-gutenberg permissions: contents: read secrets: inherit @@ -180,6 +198,8 @@ jobs: memcached: ${{ matrix.memcached }} phpunit-config: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }} report: ${{ false }} + gutenberg-artifact: gutenberg-build + gutenberg-sha: ${{ needs.prepare-gutenberg.outputs.gutenberg-sha }} # # Creates PHPUnit test jobs to test MariaDB and MySQL innovation releases. @@ -195,6 +215,7 @@ jobs: test-innovation-releases: name: PHP ${{ matrix.php }} uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk + needs: prepare-gutenberg permissions: contents: read secrets: inherit @@ -227,6 +248,8 @@ jobs: memcached: ${{ matrix.memcached }} phpunit-config: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }} report: ${{ false }} + gutenberg-artifact: gutenberg-build + gutenberg-sha: ${{ needs.prepare-gutenberg.outputs.gutenberg-sha }} # # Runs the HTML API test group. @@ -239,6 +262,7 @@ jobs: html-api-test-groups: name: ${{ matrix.label }} uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk + needs: prepare-gutenberg permissions: contents: read secrets: inherit @@ -257,6 +281,8 @@ jobs: db-type: ${{ matrix.db-type }} db-version: ${{ matrix.db-version }} phpunit-test-groups: ${{ matrix.phpunit-test-groups }} + gutenberg-artifact: gutenberg-build + gutenberg-sha: ${{ needs.prepare-gutenberg.outputs.gutenberg-sha }} # # Runs unit tests for forks. @@ -268,6 +294,7 @@ jobs: limited-matrix-for-forks: name: PHP ${{ matrix.php }} uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk + needs: prepare-gutenberg permissions: contents: read secrets: inherit @@ -315,6 +342,8 @@ jobs: db-type: ${{ matrix.db-type }} memcached: ${{ matrix.memcached || false }} phpunit-test-groups: ${{ matrix.phpunit-test-groups || '' }} + gutenberg-artifact: gutenberg-build + gutenberg-sha: ${{ needs.prepare-gutenberg.outputs.gutenberg-sha }} slack-notifications: name: Slack Notifications From 0c02385590c6e2f0283dc8e86598dcafe524da62 Mon Sep 17 00:00:00 2001 From: Lance Willett Date: Tue, 28 Jul 2026 09:41:41 -0700 Subject: [PATCH 2/3] Build/Test Tools: Report Gutenberg preparation failures to Slack --- .github/workflows/phpunit-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phpunit-tests.yml b/.github/workflows/phpunit-tests.yml index a3080a2cd8529..73717985c585b 100644 --- a/.github/workflows/phpunit-tests.yml +++ b/.github/workflows/phpunit-tests.yml @@ -351,7 +351,7 @@ jobs: permissions: actions: read contents: read - needs: [ test-with-mysql, test-with-mariadb, test-innovation-releases, html-api-test-groups, limited-matrix-for-forks ] + needs: [ prepare-gutenberg, test-with-mysql, test-with-mariadb, test-innovation-releases, html-api-test-groups, limited-matrix-for-forks ] if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} with: calling_status: ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }} From 6c19934e4dd111053606ecaa49f14ac8c7f06042 Mon Sep 17 00:00:00 2001 From: Lance Willett Date: Tue, 28 Jul 2026 10:01:07 -0700 Subject: [PATCH 3/3] Build/Test Tools: Pin 7.0 Gutenberg preparation workflow --- .github/workflows/phpunit-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phpunit-tests.yml b/.github/workflows/phpunit-tests.yml index 73717985c585b..a6f5472e00fca 100644 --- a/.github/workflows/phpunit-tests.yml +++ b/.github/workflows/phpunit-tests.yml @@ -63,7 +63,7 @@ jobs: # them, because a job that needs a skipped job is skipped too, and a broader one # downloads a build that nothing consumes. prepare-gutenberg: - uses: WordPress/wordpress-develop/.github/workflows/reusable-prepare-gutenberg.yml@trunk + uses: WordPress/wordpress-develop/.github/workflows/reusable-prepare-gutenberg.yml@80fb78da3153431dee7e5d66e7463e71fda31ec7 permissions: contents: read if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}