<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[51545] trunk/.github/workflows: Build/Test Tools: Switch to always running the tests via Composer.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/51545">51545</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/51545","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2021-08-04 19:48:56 +0000 (Wed, 04 Aug 2021)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Build/Test Tools: Switch to always running the tests via Composer.

Previously the tests were run via a PHPUnit Phar file for PHP 5.6-7.4, with PHP 8.0 using a Composer-installed version of PHPUnit.

Running the tests via a Phar without the need for a `composer install` is (marginally) faster in overall build time, however, this commit is part of a larger chain of changes which will make the test suite PHPUnit cross-version compatible.

With an eye on those upcoming changes, which will allow us to run the tests on the most appropriate PHPUnit version for each supported PHP version, it is opportune to switch to using a Composer-installed version of PHPUnit for all PHP versions supported by WordPress. Previously this was not possible without additional conditional `update` commands being run, due to the `composer.lock` file being in place and being locked at PHPUnit 7.5.20.

Switching over to using the Composer-installed PHPUnit version, with that PHPUnit version adjusting based on the PHP version, allows for some minor simplifications in the GitHub Actions script.

This means we need additional measures to make sure that the Composer cache file does not go too far out of date as that would significantly slow down the builds.

By adding a "Last Monday" date to the cache key, in combination with the pre-existing OS, PHP version and the hash of the `composer.json` file, we can guarantee that:
1. There will be a cache created for each OS/PHP combination.
2. These caches will be replaced whenever a change is made to the `composer.json` file.
3. These caches will be replaced every Monday of each week ensuring that the cache file does not go too far out of date.

Note: The NPM script `test:php` is now no longer needed during the builds. However, to prevent breaking the workflow of contributors who may be used to having the command available, the command remains available.

In a future iteration we may be able to replace the caching of the Composer dependencies with the Composer cache action as offered on the GitHub marketplace, which would further simplify the script.

Follow-up to <a href="https://core.trac.wordpress.org/changeset/42960">[42960]</a>, <a href="https://core.trac.wordpress.org/changeset/46290">[46290]</a>, <a href="https://core.trac.wordpress.org/changeset/47881">[47881]</a>, <a href="https://core.trac.wordpress.org/changeset/48957">[48957]</a>, <a href="https://core.trac.wordpress.org/changeset/49037">[49037]</a>, <a href="https://core.trac.wordpress.org/changeset/51543">[51543]</a>, <a href="https://core.trac.wordpress.org/changeset/51544">[51544]</a>.

Props jrf, desrosj.
Fixes <a href="https://core.trac.wordpress.org/ticket/47381">#47381</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkgithubworkflowsphpunittestsyml">trunk/.github/workflows/phpunit-tests.yml</a></li>
<li><a href="#trunkgithubworkflowstestcoverageyml">trunk/.github/workflows/test-coverage.yml</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkgithubworkflowsphpunittestsyml"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/.github/workflows/phpunit-tests.yml</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/.github/workflows/phpunit-tests.yml 2021-08-04 19:24:14 UTC (rev 51544)
+++ trunk/.github/workflows/phpunit-tests.yml   2021-08-04 19:48:56 UTC (rev 51545)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -30,9 +30,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> env:
</span><span class="cx" style="display: block; padding: 0 10px">   PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  COMPOSER_INSTALL: ${{ false }}
-  # Controls which NPM script to use for running PHPUnit tests. Options ar `php` and `php-composer`.
-  PHPUNIT_SCRIPT: php
</del><span class="cx" style="display: block; padding: 0 10px">   LOCAL_PHP_MEMCACHED: ${{ false }}
</span><span class="cx" style="display: block; padding: 0 10px">   SLOW_TESTS: 'external-http,media,restapi'
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,33 +118,34 @@
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Install Dependencies
</span><span class="cx" style="display: block; padding: 0 10px">         run: npm ci
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-      - name: Get composer cache directory
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      # This date is used to ensure that the Composer cache is refreshed at least once every week.
+      # http://man7.org/linux/man-pages/man1/date.1.html
+      - name: "Get last Monday's date"
+        id: get-date
+        run: echo "::set-output name=date::$(/bin/date -u --date='last Mon' "+%F")"
+        shell: bash
+
+      - name: Get Composer cache directory
</ins><span class="cx" style="display: block; padding: 0 10px">         id: composer-cache
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }}
</del><span class="cx" style="display: block; padding: 0 10px">         run: echo "::set-output name=dir::$(composer config cache-files-dir)"
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Cache Composer dependencies
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }}
</del><span class="cx" style="display: block; padding: 0 10px">         uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
</span><span class="cx" style="display: block; padding: 0 10px">         env:
</span><span class="cx" style="display: block; padding: 0 10px">           cache-name: cache-composer-dependencies
</span><span class="cx" style="display: block; padding: 0 10px">         with:
</span><span class="cx" style="display: block; padding: 0 10px">           path: ${{ steps.composer-cache.outputs.dir }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }}
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          key: ${{ runner.os }}-php-${{ matrix.php }}-date-${{ steps.get-date.outputs.date }}-composer-${{ hashFiles('**/composer.json') }}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Install Composer dependencies
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        if: ${{ env.COMPOSER_INSTALL == true || env.LOCAL_PHP == '8.0-fpm' }}
</del><span class="cx" style="display: block; padding: 0 10px">         run: |
</span><span class="cx" style="display: block; padding: 0 10px">           docker-compose run --rm php composer --version
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-          # The PHPUnit 7.x phar is not compatible with PHP 8 and won't be updated,
-          # as PHPUnit 7 is no longer supported. The Composer-installed PHPUnit should be
-          # used for PHP 8 testing instead.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          # Install using `composer update` as there is no `composer.lock` file.
</ins><span class="cx" style="display: block; padding: 0 10px">           if [ ${{ env.LOCAL_PHP }} == '8.0-fpm' ]; then
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            docker-compose run --rm php composer install --ignore-platform-reqs
-            echo "PHPUNIT_SCRIPT=php-composer" >> $GITHUB_ENV
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            docker-compose run --rm php composer update --ignore-platform-reqs
</ins><span class="cx" style="display: block; padding: 0 10px">           else
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-            docker-compose run --rm php composer install
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+            docker-compose run --rm php composer update
</ins><span class="cx" style="display: block; padding: 0 10px">           fi
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Docker debug information
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -190,36 +188,36 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run slow PHPUnit tests
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ matrix.split_slow }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ${{ env.SLOW_TESTS }}
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ${{ env.SLOW_TESTS }}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run PHPUnit tests for single site excluding slow tests
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ matrix.php < '7.0' && ! matrix.split_slow && ! matrix.multisite }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-required
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-required
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run PHPUnit tests for Multisite excluding slow tests
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ matrix.php < '7.0' && ! matrix.split_slow && matrix.multisite }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-excluded,oembed-headers
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-excluded,oembed-headers
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run PHPUnit tests
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ matrix.php >= '7.0' }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }}
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c ${{ env.PHPUNIT_CONFIG }}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run AJAX tests
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ ! matrix.split_slow }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ajax
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ajax
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run ms-files tests as a multisite install
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ matrix.multisite && ! matrix.split_slow }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c tests/phpunit/multisite.xml --group ms-files
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c tests/phpunit/multisite.xml --group ms-files
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run external HTTP tests
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ ! matrix.multisite && ! matrix.split_slow }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --group external-http
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c phpunit.xml.dist --group external-http
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       # __fakegroup__ is excluded to force PHPUnit to ignore the <exclude> settings in phpunit.xml.dist.
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run (xDebug) tests
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ ! matrix.split_slow }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: LOCAL_PHP_XDEBUG=true npm run test:${{ env.PHPUNIT_SCRIPT }} -- -v --group xdebug --exclude-group __fakegroup__
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: LOCAL_PHP_XDEBUG=true npm run test:php-composer -- -v --group xdebug --exclude-group __fakegroup__
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Ensure version-controlled files are not modified or deleted
</span><span class="cx" style="display: block; padding: 0 10px">         run: git diff --exit-code
</span></span></pre></div>
<a id="trunkgithubworkflowstestcoverageyml"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/.github/workflows/test-coverage.yml</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/.github/workflows/test-coverage.yml 2021-08-04 19:24:14 UTC (rev 51544)
+++ trunk/.github/workflows/test-coverage.yml   2021-08-04 19:48:56 UTC (rev 51545)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -18,9 +18,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> env:
</span><span class="cx" style="display: block; padding: 0 10px">   PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-  COMPOSER_INSTALL: ${{ false }}
-  # Controls which NPM script to use for running PHPUnit tests. Options ar `php` and `php-composer`.
-  PHPUNIT_SCRIPT: php
</del><span class="cx" style="display: block; padding: 0 10px">   LOCAL_PHP: '7.4-fpm'
</span><span class="cx" style="display: block; padding: 0 10px">   LOCAL_PHP_XDEBUG: true
</span><span class="cx" style="display: block; padding: 0 10px">   LOCAL_PHP_MEMCACHED: ${{ false }}
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -88,6 +85,32 @@
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Install Dependencies
</span><span class="cx" style="display: block; padding: 0 10px">         run: npm ci
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+      # This date is used to ensure that the Composer cache is refreshed at least once every week.
+      # http://man7.org/linux/man-pages/man1/date.1.html
+      - name: "Get last Monday's date"
+        id: get-date
+        run: echo "::set-output name=date::$(/bin/date -u --date='last Mon' "+%F")"
+        shell: bash
+
+      - name: Get Composer cache directory
+        id: composer-cache
+        run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+      - name: Cache Composer dependencies
+        uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
+        env:
+          cache-name: cache-composer-dependencies
+        with:
+          path: ${{ steps.composer-cache.outputs.dir }}
+          key: ${{ runner.os }}-php-${{ matrix.php }}-date-${{ steps.get-date.outputs.date }}-composer-${{ hashFiles('**/composer.json') }}
+
+      - name: Install Composer dependencies
+        run: |
+          docker-compose run --rm php composer --version
+
+          # Install using `composer update` as there is no `composer.lock` file.
+          docker-compose run --rm php composer update
+
</ins><span class="cx" style="display: block; padding: 0 10px">       - name: Docker debug information
</span><span class="cx" style="display: block; padding: 0 10px">         run: |
</span><span class="cx" style="display: block; padding: 0 10px">           docker -v
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,7 +144,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run tests as a single site
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ ! matrix.multisite }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c phpunit.xml.dist --coverage-clover wp-code-coverage-single-clover-${{ github.sha }}.xml
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c phpunit.xml.dist --coverage-clover wp-code-coverage-single-clover-${{ github.sha }}.xml
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Ensure version-controlled files are not modified during the tests
</span><span class="cx" style="display: block; padding: 0 10px">         run: git diff --exit-code
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -135,7 +158,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Run tests as a multisite install
</span><span class="cx" style="display: block; padding: 0 10px">         if: ${{ matrix.multisite }}
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        run: npm run test:${{ env.PHPUNIT_SCRIPT }} -- --verbose -c tests/phpunit/multisite.xml --coverage-clover wp-code-coverage-multisite-clover-${{ github.sha }}.xml
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        run: npm run test:php-composer -- --verbose -c tests/phpunit/multisite.xml --coverage-clover wp-code-coverage-multisite-clover-${{ github.sha }}.xml
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">       - name: Ensure version-controlled files are not modified during the tests
</span><span class="cx" style="display: block; padding: 0 10px">         run: git diff --exit-code
</span></span></pre>
</div>
</div>

</body>
</html>