[wp-trac] [WordPress Trac] #58977: Consider adopting workflows for testing build packages

WordPress Trac noreply at wordpress.org
Thu Aug 3 22:24:48 UTC 2023


#58977: Consider adopting workflows for testing build packages
------------------------------+------------------------------
 Reporter:  costdev           |       Owner:  costdev
     Type:  enhancement       |      Status:  assigned
 Priority:  normal            |   Milestone:  Awaiting Review
Component:  Build/Test Tools  |     Version:
 Severity:  normal            |  Resolution:
 Keywords:  2nd-opinion       |     Focuses:
------------------------------+------------------------------

Comment (by costdev):

 === What do the workflows cover?
 **Installation - 32 tests**
 - PHP: 7.0 - 8.2
 - MySQL: 5.7 and 8.0
 - Single site and Multisite - Sub-directory

 **Upgrade - 620 tests**
 - WP: The latest minor release of the 4.1 - 6.x branches
 - PHP: 7.0 - 8.2
 - MySQL: 5.7 and 8.0
 - Single site and Multisite - Sub-directory
 - Caveat: WordPress 4.6 - 5.2 tests run on PHP 7.0 - 7.4 due to Fatal
 Errors because of uses of `__autoload()` and curly braces for array/string
 offsets.

 All currently run on `ubuntu-latest`.

 === What could they cover later?
 - I'd hope to see these extended to test `windows-latest` and `mac-
 latest`.
 - SQLite and other databases.
 - Earlier Beta / RC releases in a cycle.
 - End-to-End tests for manual installs.

 === How do they work?
 The workflows leverage WP-CLI to run installation and upgrade tests.

 To ensure that matrices don't exceed 256 jobs for now, the workflows are
 split into:
 - Installation Tests
 - WP 4.x - Single site
 - WP 4.x - Multisite - Sub-directory
 - WP 5.x - Single site
 - WP 5.x - Multisite - Sub-directory
 - WP 6.x - Single site
 - WP 6.x - Multisite - Sub-directory

 Each workflow accepts one input:
 - `new_version` - The version being installed/upgraded to. Any value that
 works with the `--version` parameter in WP-CLI will work for this,
 including `6.3`, `6.3-RC3` and `nightly`.

 === How long do they take?
 As my GitHub plan means I'm limited to 20 concurrent jobs, the workflows
 take longer than they would on WordPress' plan. I'd expect all 652 jobs to
 complete within 1-3 minutes if adopted by WordPress.

 === How could they be used?

 For example:
 - Workflows could be run on nightly builds, ensuring we catch issues in
 any of these scenarios within 24 hours of the commit that introduced them.
 - We might later look at integrating these in the release party process to
 catch issues within hours of being introduced.
   - This would require a Make post to discuss how best to maximise the
 benefits of testing by release party attendees, which could focus only on
 items addressed during the latest build so that we might catch any issues
 early. If adopted, we **must** make sure we don't increase coverage while
 decreasing community engagement.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/58977#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list