From b037a4759445d944185ff989dac338ee6fb4b473 Mon Sep 17 00:00:00 2001 From: Ryan Hoerr Date: Sun, 17 May 2026 22:43:22 -0400 Subject: [PATCH] fix(workflows): also filter abstract test base classes out of matrix shards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Create Mage-OS testsuite" step already excludes Abstract*Test.php / *AbstractTest.php files discovered under entries, but EXCLUSION_LIST modules (Catalog, Bundle, Sales, AsynchronousOperations) are pre-expanded in matrix-calculator to comma-separated lists of individual *.php files that land as entries — bypassing the directory-side filter and tripping PHPUnit 12 "abstract class" runner warnings (exit 1). Filter at the find(1) call so abstract files never enter the matrix in the first place. Keeps the directory-side exclude loop authoritative for the non-EXCLUSION_LIST shards. Co-Authored-By: Claude Opus 4.7 --- .github/workflows/full-integration-tests.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/full-integration-tests.yaml b/.github/workflows/full-integration-tests.yaml index 4c22468..f778fef 100644 --- a/.github/workflows/full-integration-tests.yaml +++ b/.github/workflows/full-integration-tests.yaml @@ -115,6 +115,8 @@ jobs: # Handle exclusion list # run over EXCLUSION_LIST, find all "*Test.php" files, and put them in array. Exclude directories. + # Skip abstract test base classes (Abstract*Test.php / *AbstractTest.php) — PHPUnit 12 + # treats loading an abstract class as a runner warning, which produces exit 1. EXCLUSION_LIST_FILES=() for dir in "${EXCLUSION_LIST[@]}"; do while IFS= read -r -d '' file; do @@ -123,7 +125,8 @@ jobs: continue fi EXCLUSION_LIST_FILES+=("$file") - done < <(find "$dir" -mindepth 1 -type f -name '*Test.php' -print0) + done < <(find "$dir" -mindepth 1 -type f -name '*Test.php' \ + ! -name 'Abstract*Test.php' ! -name '*AbstractTest.php' -print0) done ## run over EXCLUSION_LIST_FILES and call add_dir_to_line for each file