Commit fbf4a2e6794 for woocommerce

commit fbf4a2e67942421a097f3ff3c4d861944a90e701
Author: Daniel Mallory <daniel.mallory@automattic.com>
Date:   Tue Jun 16 15:15:01 2026 +0100

    ci: skip changelog validation when no composer packages are touched (#65763)

    The "Validate - existing entries" step builds a pnpm --filter list from
    the packages that check-changelogger-use.php reports as touched. That
    script only considers packages with a composer.json (changelogger
    config), so a PR touching only composer-less JS packages -- e.g.
    settings-ui-sdk, settings-editor, block-templates -- yields an empty
    list.

    With an empty filter, `pnpm --parallel --workspace-concurrency=10
    --stream $filter changelog validate` ran with no --filter at all, so
    pnpm executed the `changelog` script for every package in the workspace
    concurrently. Each of those scripts runs `composer install`, and the
    parallel installs race on shared path-repo vendor dirs (e.g.
    plugins/woocommerce reading packages/php/blueprint/vendor/composer/<tmp>),
    failing with "Unable to guess file type" / "failed to open dir". The
    net effect was a reproducible changelog-job failure on any PR that
    touches only composer-less packages, despite there being nothing to
    validate.

    Guard the step: when the filter is empty there are no changelogger
    packages to validate, so log and exit 0 instead of falling through to
    an unfiltered, monorepo-wide run.

    Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 16d04d363fd..0976392433b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -512,6 +512,11 @@ jobs:
             done
             echo "Populated filter: $filter"

+            if [ -z "$filter" ]; then
+                echo "No touched packages use changelogger; nothing to validate."
+                exit 0
+            fi
+
             pnpm --parallel --workspace-concurrency=10 --stream $filter changelog validate

   validate-markdown: