#64227 closed task (blessed) (fixed)
GitHub Actions updates and improvements for 7.0
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | 7.0 | Priority: | normal |
| Severity: | normal | Version: | |
| Component: | Build/Test Tools | Keywords: | has-patch |
| Focuses: | Cc: |
Change History (33)
This ticket was mentioned in PR #10511 on WordPress/wordpress-develop by @desrosj.
5 months ago
#1
- Keywords has-patch added
@desrosj commented on PR #10511:
5 months ago
#2
Waiting to merge this until the discussions on #10512 are resolved to ensure this task deletes all of the correct files.
@desrosj commented on PR #10511:
5 months ago
#4
Fixed in r61286.
This ticket was mentioned in PR #9457 on WordPress/wordpress-develop by @johnbillion.
4 months ago
#5
The main aim here is to reduce the chance of unnecessary workflows running when changes are not made to src files. As an example, a change to a phpunit test file currently triggers the e2e tests, the performance tests, and the build process testing, all of which are unnecessary.
I would appreciate the proposed path changes being double checked in case I've missed something.
Ironically, changing these workflow files triggers the corresponding workflows in this PR.
@desrosj commented on PR #10959:
8 weeks ago
#7
Merged in r61663.
This ticket was mentioned in PR #11031 on WordPress/wordpress-develop by @johnbillion.
7 weeks ago
#8
Trac ticket: https://core.trac.wordpress.org/ticket/64227
This addresses two issues with the e2e test workflow.
## Tricky Trixie
Last night at 01:11 UTC the latest tag for the PHP-based wordpressdevelop Docker images was changed from 8.2 to 8.3. Merging this change causes all the images to be rebuilt in the same way as we saw for Core-63876.
The e2e tests workflow doesn't specify a PHP version, so runs after that point switched from PHP 8.2 to 8.3.
Switching from PHP 8.2 to 8.3 also meant switching from Debian Bullseye using cURL 7.74.0 to Debian Trixie using cURL 8.14.1. In cURL 7.77.0 a change was made that means localhost always resolves to either 127.0.0.1 or ::1 and never consults /etc/hosts.
In the Docker config for the local dev environment, localhost points to the host machine, not to 127.0.0.1. We're not the only ones affected by this.
During installation, WordPress calls wp_install_maybe_enable_pretty_permalinks() which performs a loopback request to check that pretty permalinks work. If they do, they get enabled by default.
Then we finally get to the e2e tests. The e2e tests assume that pretty permalinks are enabled. They don't get enabled explicitly. When a test requests /this-does-not-exist it ironically receives an HTTP 200 response rather than the expected 404 because pretty permalinks are not enabled, causing URL path info to be ignored and the home page to be served.
This is why the the e2e tests that assume pretty permalinks are in place were passing on PHP 8.2 and now fail on the new PHP 8.3 image with cURL 8.
## Awkward apt-get
The e2e tests only run on Chrome.
The e2e workflow installs browsers for Playwright using npx playwright install --with-deps in accordance with to the Playwright documentation for CI. This installs dependencies for running headless Chromium which aren't otherwise included by default on the container images.
By default, Playwright installs Chromium, Firefox, and Webkit, but we only need Chromium. By excluding Firefox and Webkit, a massively reduced set of dependencies are pulled in by apt-get. The affected step goes from ~15 minutes to ~30 seconds.
This fix isn't technically needed to get the e2e tests passing again, but it does mean the workflow run doesn't bump right up against the 20 minute timeout for the workflow.
@johnbillion commented on PR #11031:
7 weeks ago
#10
I agree that perhaps switching to a different host name in the container is worth investigating, but as per the comments in https://github.com/curl/curl/issues/11104 the reason localhost is used is so there's no need to mess with /etc/hosts on the host machine. Needs some research, maybe bite the bullet and go with dnsmasq.
@johnbillion commented on PR #11031:
7 weeks ago
#11
Committed in https://core.trac.wordpress.org/changeset/61733
This ticket was mentioned in PR #11250 on WordPress/wordpress-develop by @desrosj.
4 weeks ago
#16
The installation tests currently fail for older branches
Trac ticket: Core-64227.
## Use of AI Tools
@desrosj commented on PR #11250:
4 weeks ago
#17
This is ready to go. Since you can't run a workflow_dispatch event from a PR branch, I've pushed the changes to my fork and done so. All looks good.
@desrosj commented on PR #11250:
4 weeks ago
#20
Merged in r62022.
@desrosj commented on PR #11268:
4 weeks ago
#22
Merged in r62033.
This ticket was mentioned in PR #10583 on WordPress/wordpress-develop by @jorbin.
4 weeks ago
#24
Trac ticket: Core-64227
@desrosj commented on PR #10583:
4 weeks ago
#26
Merged in r62042.
This ticket was mentioned in PR #11278 on WordPress/wordpress-develop by @desrosj.
4 weeks ago
#27
This makes several improvements to path filtering within GitHub Actions workflows to account for recent changes to the build script and a few other minor improvements.
Trac ticket: Core-64227.
## Use of AI Tools
None.
This ticket was mentioned in PR #11280 on WordPress/wordpress-develop by @desrosj.
4 weeks ago
#28
This simplifies Composer-related caching by eliminating the need for an extra step to create a date-based value to use in cache keys.
Trac ticket: Core-64227.
## Use of AI Tools
Used Claude to create the initial draft of these changes.
#30
@
3 weeks ago
- Resolution set to fixed
- Status changed from new to closed
With RC1 later today, going to close this out. This can be reopened or referenced if more changes are required for 7.0.
Created #64893 for the 7.1 release cycle.
@desrosj commented on PR #11278:
3 weeks ago
#33
Merged in r62095.
This new
post-branchingtask is meant for any tasks that should be run immediately after creating a new numbered branch. Currently, this only consists of GitHub Actions-related tasks.In addition to the pre-existing
replace:workflow-references-local-to-remotetask, a newclean:workflowstask is being added that deletes the workflow files that are only intended fortrunk.Trac ticket: Core-64227