[wp-trac] [WordPress Trac] #53945: Local test workflow changes for installing Composer dependencies

WordPress Trac noreply at wordpress.org
Sun Aug 29 01:07:39 UTC 2021


#53945: Local test workflow changes for installing Composer dependencies
-------------------------------------------------+-------------------------
 Reporter:  hellofromTonya                       |       Owner:
                                                 |  johnbillion
     Type:  task (blessed)                       |      Status:  closed
 Priority:  normal                               |   Milestone:  5.9
Component:  Build/Test Tools                     |     Version:
 Severity:  normal                               |  Resolution:  fixed
 Keywords:  has-patch has-testing-instructions   |     Focuses:
  commit                                         |
-------------------------------------------------+-------------------------

Comment (by jrf):

 Uh oh... commit [51685] has broken the tests from running against PHP
 8.1....

 The reason for this is quite simple: not all PHPUnit dependencies have
 released a version yet which has declared compatibility with PHP 8.1, so
 on PHP 8.1 the `composer update` needs to run with `--ignore-platform-
 requirements` as otherwise PHPUnit 4.8.x will be installed (the last
 PHPUnit version which didn't have version constraints declared).

 Previously in GH Actions, this was (and still is) handled by special
 casing PHP 8.1 in the "Composer install" step, but as the "Install
 WordPress" step is run **after** that step and now runs `composer update`
 as well, the "Install WordPress" step removes the previously installed
 PHPUnit 9.x version and replaces it with PHPUnit 4.x.

 Also see:
 https://github.com/WordPress/wordpress-
 develop/blob/29531de7685a8d166707a0f2409ab8517b1b2dff/.github/workflows
 /phpunit-tests.yml#L143-L152

 And:
 https://github.com/WordPress/wordpress-
 develop/runs/3452011214?check_suite_focus=true#step:16:83

 I can currently think of two potential solution directions, though am not
 sure which one is best/feasible:
 1. Presuming the `install.js` script has access to the PHP version on
 which the script is being run (does it ?), special case the command for
 PHP 8.1 to use `--ignore-platform-requirements`.
 2. Presuming the `install.js` script has access to an environment variable
 indicating that it is being run in the context of a GitHub actions run,
 skip the call to `install_composer_dependencies()`.

 We may even need a combination of the two as with solution (1), it would
 be best to remove the "Composer install" step from the GitHub Actions unit
 test and code coverage workflows as that step is now handled via the
 Docker "Install WordPress" step, but on the other hand, if we do that,
 this may break the caching of the Composer downloads in GitHub Actions,
 slowing down the workflows.

 @johnbillion @desrosj @netweb What do think would be the best way to solve
 this ?

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


More information about the wp-trac mailing list