Make WordPress Core

Opened 4 months ago

Closed 2 months ago

Last modified 7 days ago

#61213 closed enhancement (fixed)

Convert GitHub Action workflows into reusable ones

Reported by: desrosj's profile desrosj Owned by: desrosj's profile desrosj
Milestone: 6.6 Priority: normal
Severity: normal Version:
Component: Build/Test Tools Keywords: has-patch
Focuses: Cc:

Description

In trunk, Core's GitHub Action workflows are a mix of standard and reusable workflows. While each have pros and cons, the advantages of reusable workflows outweigh the shortcomings, primarily because it makes maintaining the workflows within the 25 (and growing) old branches that can still receive security updates significantly easier.

The PHPUnit and build process testing workflows have been callable for a few release cycles now and there have been no major problems. Here is a quick breakdown of the pros and cons:

Benefits

  • All branches receiving security updates immediately receive the benefits of performance improvements to the callable workflow file used from trunk.
  • All branches receive the 3rd-party action updates updated when updated in trunk.
  • Any changes required at the platform level only need to be applied in trunk (changes to the versions of Node.js found on images or removal of save-state/set-output as examples).

Disadvantages

  • Because a repository and branch is specified when using the workflow, the version of the file found in trunk is always used, even within PRs. The best way around this is to change the uses: path to the PR's fork repository/branch.
  • Truly using one reusable workflow for all branches would result in a large number of inputs and steps that are skipped. There will likely need to be 2 versions of a few workflows to account for major updates to how a workflow works (see #45863).

This ticket proposes the following:

  • Extract the actual testing/building logic in all workflows to reusable ones that accept inputs to configure the environment.
  • Establish a naming practice and standardize all reusable workflows so it's clear which files are reusable and which ones contain the strategy matrix/permission configuration.
  • Update old branches to use the workflow file in trunk.

Attachments (1)

61213.diff (64.8 KB) - added by desrosj 4 months ago.

Download all attachments as: .zip

Change History (111)

@desrosj
4 months ago

#2 @desrosj
4 months ago

  • Owner set to desrosj
  • Resolution set to fixed
  • Status changed from new to closed

In 58165:

Build/Test Tools: Convert GitHub action workflows into reusable ones.

With a few exceptions, GitHub Actions workflows run using the version of the workflow file present in the commit SHA or Git ref for the triggering event. This is useful for maintaining different versions of a workflow file.

In the case of WordPress where there are currently 25+ branches that could potentially receive a security fix, it creates a huge maintenance burden. When 3rd party actions are updated or features are deprecated on GitHub Actions, the required changes need to be backported to all of those branches. This takes considerable time and effort.

This change converts Core’s workflow files to reusable ones. This allows the same workflow to be used for all (or most) branches, allowing the described maintenance updates to be made once in trunk.

To keep track of which files are reusable vs. those that are responsible for holding the strategy matrix for that branch, reusable workflows are now prefixed with reusable-.

Props johnbillion, swissspidy, jorbin, desrosj.
Fixes #61213.

#4 @desrosj
4 months ago

  • Keywords fixed-major added
  • Resolution fixed deleted
  • Status changed from closed to reopened

Reopening to handle the necessary backporting.

#5 @desrosj
4 months ago

In 58166:

Build/Test Tools: Use new reusable workflows in the 6.5 branch.

This updates the 6.5 branch to utilize the new reusable workflows in trunk introduced in [58165].

Props johnbillion, swissspidy, jorbin.
See #61213.

#6 @desrosj
4 months ago

I'm going to stop here for today and see how these two branches go. I'll update the other PR branches and plan to go back further later next week.

This ticket was mentioned in Slack in #core-performance by johnbillion. View the logs.


4 months ago

#8 @desrosj
4 months ago

In 58269:

Build/Test Tools: Add input for PHP version to the performance workflow.

This adds a new input to the reusable performance testing workflow for accepting a PHP version. This allows the workflow to be reused in older branches when the PHP version currently tagged latest was not supported.

Props swissspidy, joemcgill.
See #60127, #61213.

#9 @desrosj
4 months ago

In 58270:

Build/Test Tools: Correct conditional logic in [58269].

See #60127, #61213.

This ticket was mentioned in PR #6586 on WordPress/wordpress-develop by @desrosj.


4 months ago
#10

This updates the logic around generating the necessary parts for playground comments to be more reusable, making it possible for old branches to use this feature without added maintenance burden.

Trac ticket: https://core.trac.wordpress.org/ticket/61213

This ticket was mentioned in PR #6385 on WordPress/wordpress-develop by @desrosj.


4 months ago
#12

This updates the 6.4 branch to make use of the reusable workflows introduced in [58165].

In addition, several Build Tool related maintenance and convenience changes are being included.

Docker related:

Trac ticket: https://core.trac.wordpress.org/ticket/61213.

  • Removing the version property from docker-compose.yml (Trac-61101)
  • Fixing the MySQL container properties to work correctly with newer releases of Docker/containers that don't support ARM (MySQL < 8.0) (Trac-60822).

#13 @desrosj
4 months ago

In 58276:

Build/Test Tools: Make use of new reusable workflows.

This updates the 6.4 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.

Merges [57918], [58157], [57124], [57125], [57249] to the 6.4 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin.
Fixes #61216. See #60901, #61101, #59416, #59805, #61213.

#15 @desrosj
3 months ago

In 58300:

Build/Test Tools: Make use of new reusable workflows for 6.3.

This updates the 6.3 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Removes the performance testing workflow. This workflow was overhauled in 6.4 to use Playwright. Continuing to support Puppeteer-based performance testing in 6.1-6.3 (which was historically very flaky) in a reusable workflow outweighs the benefit.
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.

Merges [57918], [58157], [57124], [57125], [57249] to the 6.3 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin.
Fixes #61340, #60822. See #61216, #60901, #61101, #59416, #59805, #61213.

#16 @desrosj
3 months ago

In 58301:

Build/Test Tools: Make use of new reusable workflows for 6.2.

This updates the 6.2 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Removes the performance testing workflow. This workflow was overhauled in 6.4 to use Playwright. Continuing to support Puppeteer-based performance testing in 6.1-6.3 (which was historically very flaky) in a reusable workflow outweighs the benefit.
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.

Merges [57918], [58157], [57124], [57125], [57249] to the 6.2 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin.
See #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#17 @desrosj
3 months ago

In 58302:

Build/Test Tools: Include files missed in [58301].

Unprops desrosj.
See #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#18 @desrosj
3 months ago

In 58329:

Build/Test Tools: Add a PHP version input for E2E workflow.

This allows a specific version of PHP to be used when calling the reusable end-to-end testing workflow, which is particularly useful in older branches.

Follow up to [58165], [58269], [58270].

See #61213.

This ticket was mentioned in PR #6724 on WordPress/wordpress-develop by @desrosj.


3 months ago
#19

This adds an input to prevent test errors from failing the workflow. This is useful for older branches where support for a specific version of PHP was not 100%.

Trac ticket: https://core.trac.wordpress.org/ticket/61213

#20 @desrosj
3 months ago

In 58330:

Build/Test Tools: Make use of new reusable workflows for 6.1.

This updates the 6.1 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Removes the performance testing workflow. This workflow was overhauled in 6.4 to use Playwright. Continuing to support Puppeteer-based performance testing in 6.1-6.3 (which was historically very flaky) in a reusable workflow outweighs the benefit.
  • Run E2E tests with and without SCRIPT_DEBUG (#58661).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.

Merges [56113], [56114], [57918], [58157], [57124], [57125], [57249] to the 6.1 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin.
See #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213, #58661.

#21 @desrosj
3 months ago

In 58331:

Build/Test Tools: Add an input to allow errors for the PHPUnit workflow.

This allows a calling workflow to configure the PHPUnit workflow to continue-on-error when one occurs. This is useful for older branches where support for a specific version of PHP was not at 100% within the test suite.

Follow up to [58165], [58269], [58270], [58329].

See #61213.

#23 @desrosj
3 months ago

In 58349:

Build/Test Tools: Use input added in [58274] in the 6.2 branch.

This was missed in [58301].

See #59416, #61213.

#24 @desrosj
3 months ago

In 58350:

Build/Test Tools: Use input added in [58274] in the 6.1 branch.

This was missed in [58330].

See #59416, #61213.

#27 @desrosj
3 months ago

In 58351:

Build/Test Tools: Make OS detection more generic in job names.

This prevents workflow runs in older branches that are using older versions of runner images from displaying the wrong operating system in job names.

Because the updated files are reusable, this change will automatically fix the issue in all older branches without the need to backport.

See #61213.

#29 @desrosj
3 months ago

In 58357:

Build/Test Tools: Make use of new reusable workflows for 6.0.

This updates the 6.0 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Run E2E tests with and without SCRIPT_DEBUG (#58661).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Move the Memcached container into the Docker Compose config (#55700).
  • Configure Xdebug modes in the local Docker environment (#56022).

Merges [53895], [53552], [56113], [56114], [57918], [58157], [57124], [57125], [57249] to the 6.0 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen.
See #55700, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213, #58661.

#31 @desrosj
3 months ago

In 58358:

Build/Test Tools: Make use of new reusable workflows for 5.9.

This updates the 5.9 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Run E2E tests with and without SCRIPT_DEBUG (#58661).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Move the Memcached container into the Docker Compose config (#55700).
  • Configure Xdebug modes in the local Docker environment (#56022).

Merges [53895], [53552], [56113], [56114], [57918], [58157], [57124], [57125], [57249] to the 5.9 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen.
See #55700, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213, #58661.

#32 @desrosj
3 months ago

In 58359:

Build/Test Tools: Update actions/github-scripts in the 5.9 branch.

This change was missed in [58258].

Unprops desrosj.
See #61213.

This ticket was mentioned in Slack in #core by desrosj. View the logs.


3 months ago

This ticket was mentioned in PR #6906 on WordPress/wordpress-develop by @desrosj.


3 months ago
#36

This ticket was mentioned in PR #6907 on WordPress/wordpress-develop by @desrosj.


3 months ago
#37

This ticket was mentioned in PR #6908 on WordPress/wordpress-develop by @desrosj.


3 months ago
#38

@desrosj commented on PR #6921:


3 months ago
#43

Test comment.

#49 @desrosj
3 months ago

In 58593:

Build/Test Tools: Fix local environment whith memcached.

Follow up to [58358].

Props jorbin.
See #61213.

#52 @desrosj
3 months ago

In 58595:

Build/Test Tools: Introduce two additional reusable PHPUnit workflows.

The changes associated with #61213 aim to update all branches potentially receiving security updates to use the same workflow files for easier maintenance as much as possible. However, there are times when the logic found in GitHub Action workflow files changes pretty drastically.

For PHPUnit testing, there are 2 instances where this occurred: the 5.2 and 5.9 branches. This changeset introduces 2 new reusable PHPUnit workflow files for use the 4.1-5.1 and 5.2-5.9 branches.

Including these workflows in trunk makes it more clear which version of the workflow file is used by these old branches, and allows Dependabot to open PRs for updating 3rd-party actions within these workflows.

Props jorbin.
See #61213.

#53 @desrosj
3 months ago

In 58596:

Build/Test Tools: Allow older branches to use Coding Standards workflow.

This updates the reusable coding standards GitHub Actions workflow to support the old way of running PHPCS commands when the old-branches input flag is set to true. This allows the 5.1-5.4 branches to use the same workflow as all other 5.5+ branches.

See #61213.

#55 @desrosj
3 months ago

In 58597:

Build/Test Tools: Make use of new reusable workflows for 5.8.

This updates the 5.8 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Run E2E tests with and without SCRIPT_DEBUG (#58661).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Move the Memcached container into the Docker Compose config (#55700).
  • Configure Xdebug modes in the local Docker environment (#56022).
  • Cache the results of PHP_CodeSniffer runs (#49783).

Merges [52179], [53895], [53552], [56113], [56114], [57918], [58157], [57124], [57125], [57249] to the 5.8 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #48783, #55700, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213, #58661.

#57 @desrosj
3 months ago

In 58598:

Build/Test Tools: Make use of new reusable workflows for 5.7.

This updates the 5.7 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Run E2E tests with and without SCRIPT_DEBUG (#58661).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Cache the results of PHP_CodeSniffer runs (#49783).
  • A fix to grunt clean to prevent script-loader-packages.php from being deleted (#53606).

Merges [51355], [52179], [56113], [56114], [57918], [58157], [57124], [57125], [57249] to the 5.7 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #48783, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213, #58661, #53606.

#58 @desrosj
3 months ago

In 58599:

Build/Test Tools: Update environment variables in Docker compose file.

Follow up to [58598].

Merges [51673] to the 5.7 branch.

Props pbrearne, ocean90, johnbillion, desrosj.
See #61213, #53820.

#59 @desrosj
3 months ago

In 58602:

Build/Test Tools: Fix 2 matrix errors.

These are caused by an empty split_slow value when one is always expected.

See #61213.

#60 @desrosj
3 months ago

In 58603:

Build/Test Tools: Use correct value for split_slow.

Follow up to [58597], [58602].

See #61213.

#61 @desrosj
3 months ago

In 58604:

Build/Test Tools: Fix 2 matrix errors in the 5.7 branch.

These are caused by an empty split_slow value when one is always expected.

Follow up to [58598].

See #61213.

#62 @desrosj
3 months ago

In 58605:

Build/Test Tools: Make use of new reusable workflows for 5.6.

This updates the 5.6 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Run E2E tests with and without SCRIPT_DEBUG (#58661).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Cache the results of PHP_CodeSniffer runs (#49783).
  • Move the Memcached container into the Docker Compose config (#55700).
  • Configure Xdebug modes in the local Docker environment (#56022).
  • Improvements to the healthcheck command for the mysql container (#58867).
  • A fix to grunt clean to prevent script-loader-packages.php from being deleted (#53606).

Merges [51355], [51673], [52179], [53552], [53895], [56113], [56114], [56464], [57918], [58157], [57124], [57125], [57249] to the 5.6 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #49783, #58867, #61340, #60822, #61216, #60901, #61101, #56022, #59416, #59805, #61213, #58661, #53606.

#63 @desrosj
3 months ago

In 58606:

Build/Test Tools: Update job name to ensure proper grouping.

Follow up to [58276].

See #61213.

#64 @desrosj
3 months ago

In 58607:

Build/Test Tools: Update job names to ensure proper grouping.

Follow up to [58301].

See #61213.

#65 @desrosj
3 months ago

In 58608:

Build/Test Tools: Update job names to ensure proper grouping.

Follow up to [58330].

See #61213.

#66 @desrosj
3 months ago

In 58609:

Build/Test Tools: Update job names to ensure proper grouping.

Follow up to [58357].

See #61213.

#67 @desrosj
3 months ago

In 58610:

Build/Test Tools: Make use of new reusable workflows for 5.5.

This updates the 5.5 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Cache the results of PHP_CodeSniffer runs (#49783).
  • Move the Memcached container into the Docker Compose config (#55700).
  • Improvements to the healthcheck command for the mysql container (#58867).
  • A fix to grunt clean to prevent script-loader-packages.php from being deleted (#53606).
  • Skip some tests when not in the primary branch (#50401).

Merges [49264], [51355], [51673], [52179], [53552], [53895], [56464], [57918], [58157], [57124], [57125], [57249] to the 5.5 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #49783, #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213, #53606.

#68 @desrosj
3 months ago

In 58611:

Build/Test Tools: Make use of new reusable workflows for 5.4.

This updates the 5.4 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Cache the results of PHP_CodeSniffer runs (#49783).
  • Move the Memcached container into the Docker Compose config (#55700).
  • Improvements to the healthcheck command for the mysql container (#58867).
  • Skip some tests when not in the primary branch (#50401).

Merges [49264], [51673], [52179], [53552], [53895], [56464], [57918], [58157], [57124], [57125], [57249] to the 5.4 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #49783, #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#69 @desrosj
2 months ago

In 58624:

Build/Test Tools: Make use of new reusable workflows for 5.3.

This updates the 5.3 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Cache the results of PHP_CodeSniffer runs (#49783).
  • Move the Memcached container into the Docker Compose config (#55700).
  • Improvements to the healthcheck command for the mysql container (#58867).
  • Skip some tests when not in the primary branch (#50401).

Merges [49264], [51673], [52179], [53552], [53895], [56464], [57918], [58157], [57124], [57125], [57249] to the 5.3 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #49783, #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#70 @desrosj
2 months ago

In 58625:

Build/Test Tools: Make use of new reusable workflows for 5.2.

This updates the 5.2 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Cache the results of PHP_CodeSniffer runs (#49783).
  • Move the Memcached container into the Docker Compose config (#55700).
  • Improvements to the healthcheck command for the mysql container (#58867).
  • Skip some tests when not in the primary branch (#50401).

Merges [49264], [51673], [52179], [53552], [53895], [56464], [57918], [58157], [57124], [57125], [57249] to the 5.2 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #49783, #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#72 @desrosj
2 months ago

In 58628:

Build/Test Tools: Make use of new reusable workflows for 5.0.

This updates the 5.0 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Cache the results of PHP_CodeSniffer runs (#49783).
  • Move the Memcached container into the Docker Compose config (#55700).
  • Improvements to the healthcheck command for the mysql container (#58867).
  • Skip some tests when not in the primary branch (#50401).

Merges [49264], [51673], [52179], [53552], [53895], [56464], [57918], [58157], [57124], [57125], [57249] to the 5.0 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #49783, #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#74 @desrosj
2 months ago

In 58636:

Build/Test Tools: Make use of new reusable workflows for 4.9.

This updates the 4.9 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.9 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#76 @desrosj
2 months ago

In 58637:

Build/Test Tools: Make use of new reusable workflows for 4.8.

This updates the 4.8 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.8 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#79 @desrosj
2 months ago

In 58638:

Build/Test Tools: Make use of new reusable workflows for 4.7.

This updates the 4.7 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.7 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#81 @desrosj
2 months ago

In 58639:

Build/Test Tools: Make use of new reusable workflows for 4.6.

This updates the 4.6 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.6 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#83 @desrosj
2 months ago

In 58640:

Build/Test Tools: Make use of new reusable workflows for 4.5.

This updates the 4.5 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.5 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#85 @desrosj
2 months ago

In 58641:

Build/Test Tools: Make use of new reusable workflows for 4.4.

This updates the 4.4 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.4 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#87 @desrosj
2 months ago

In 58642:

Build/Test Tools: Make use of new reusable workflows for 4.3.

This updates the 4.3 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.3 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#89 @desrosj
2 months ago

In 58643:

Build/Test Tools: Make use of new reusable workflows for 4.2.

This updates the 4.2 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.2 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#91 @desrosj
2 months ago

In 58644:

Build/Test Tools: Make use of new reusable workflows for 4.1.

This updates the 4.1 branch to utilize the new reusable workflows in trunk introduced in [58165].

This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term:

  • The image and platform properties for the mysql container have been updated to always prefer amd64 containers (#60822).
  • macos-13 is now pinned for MacOS jobs instead of macos-latest (#61340).
  • Migrating to Docker Compose V2 (#60901).
  • Removing the version property from docker-compose.yml (#59416).
  • Improvements to how artifacts and comments for Playground testing are generated.
  • Removing SVN related commands causing failures (#61216).
  • Updating the actions/github-scripts action to the latest version.
  • Improvements to the healthcheck command for the mysql container (#58867).

Merges [51673], [53552], [56464], [57918], [58157], [57124], [57125], [57249] to the 4.1 branch.

Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf.
See #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213.

#93 @desrosj
2 months ago

In 58645:

Build/Test Tools: Rename current reusable PHPUnit workflow.

This adds a -v3 suffix to the current reusable PHPUnit workflow name. This avoids having to update older branches in the future when the workflow’s logic drastically changes and a v4 is needed.

See #61213.

#94 @desrosj
2 months ago

In 58646:

Build/Test Tools: Update the reusable PHPUnit workflow name.

Follow up to [58645] for the 6.6 branch.

Props jorbin.
See #61213.

#95 @desrosj
2 months ago

In 58647:

Build/Test Tools: Update the reusable PHPUnit workflow name.

Follow up to [58645] for the 6.5 branch.

Props jorbin.
See #61213.

#96 @desrosj
2 months ago

In 58648:

Build/Test Tools: Update the reusable PHPUnit workflow name.

Follow up to [58645] for the 6.4 branch.

Props jorbin.
See #61213.

#97 @desrosj
2 months ago

In 58649:

Build/Test Tools: Update the reusable PHPUnit workflow name.

Follow up to [58645] for the 6.4 branch.

Props jorbin.
See #61213.

#98 @desrosj
2 months ago

In 58650:

Build/Test Tools: Update the reusable PHPUnit workflow name.

Follow up to [58645] for the 6.2 branch.

Props jorbin.
See #61213.

#99 @desrosj
2 months ago

In 58651:

Build/Test Tools: Update the reusable PHPUnit workflow name.

Follow up to [58645] for the 6.1 branch.

Props jorbin.
See #61213.

#100 @desrosj
2 months ago

In 58652:

Build/Test Tools: Update the reusable PHPUnit workflow name.

Follow up to [58645] for the 6.0 branch.

Props jorbin.
See #61213.

#101 @desrosj
2 months ago

In 58654:

Build/Test Tools: Fix workflow names in test old branches workflow.

After the changes in [58165] and [58645] and all associated backports, the workflow that dispatches regular testing in older branches needed to be updated.

  • The test-npm.yml workflow no longer exists.
  • The test-build-processes.yml has taken the place of test-npm.yml in all branches.

Also, the workflow will now run whenever an old version of the reusable PHPUnit workflow is updated (v1 or v2). This is to ensure the changes don’t cause any compatibility problems in older branches.

See #61213.

#102 @desrosj
2 months ago

In 58655:

Build/Test Tools: Update the reusable PHPUnit workflow name.

Follow up to [58645] for the 5.9 branch.

Props jorbin.
See #61213.

#103 @desrosj
2 months ago

  • Keywords fixed-major removed
  • Resolution set to fixed
  • Status changed from reopened to closed

I think we can close this out as fixed and open any necessary follow up tickets.

The lone remaining logic in old branches that is not reusable is the failed-workflow job responsible for dispatching failed-workflow.yml on the first failure. This one should require much less maintenance, and we can look at making this reusable in the future.

#104 @desrosj
2 months ago

In 58754:

Build/Test Tools: Remove regular 6.2 & 6.3 branch performance testing.

Prior to WordPress 6.4, performance testing was performed using Puppeteer instead of Playwright (converted in [56926]). Because of the flaky nature of the workflow using Puppeteer, it was not converted to the reusable pattern implemented through #61213. It was instead removed from 6.2 and 6.3 in [58301] and [58330], respectively.

This removes the workflow for these branches from the strategy matrix when testing old branches to avoid errors and adds an expanded note about why those branches are missing.

See #61213, #61564.

#105 @desrosj
8 weeks ago

In 58790:

Build/Test Tools: Re-add Slack notices for E2E workflow.

This re-adds Slack notices for the E2E workflow in the 6.3 branch.

These were mistakenly removed in [58300].

See #61733, #61213.

#106 @desrosj
8 weeks ago

In 58791:

Build/Test Tools: Re-add Slack notices for E2E workflow.

This re-adds Slack notices for the E2E workflow in the 6.2 branch.

These were mistakenly removed in [58302].

See #61733, #61213.

#107 @desrosj
8 weeks ago

In 58792:

Build/Test Tools: Re-add Slack notices for E2E workflow.

This re-adds Slack notices for the E2E workflow in the 6.1 branch.

These were mistakenly removed in [58330].

See #61733, #61213.

#108 @desrosj
8 weeks ago

In 58793:

Build/Test Tools: Re-add Slack notices for E2E workflow.

This re-adds Slack notices for the E2E workflow in the 6.0 branch.

These were mistakenly removed in [58357].

See #61733, #61213.

#109 @desrosj
8 weeks ago

In 58794:

Build/Test Tools: Re-add Slack notices for E2E workflow.

This re-adds Slack notices for the E2E workflow in the 5.9 branch.

These were mistakenly removed in [58358].

See #61733, #61213.

#110 @desrosj
8 weeks ago

In 58795:

Build/Test Tools: Re-add Slack notices for E2E workflow.

This re-adds Slack notices for the E2E workflow in the 5.8 branch.

These were mistakenly removed in [58597].

Fixes #61733. See #61213.

Note: See TracTickets for help on using tickets.