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: