@@ -31,16 +31,23 @@ if (! in_array($event, ['--pull-request', '--push'], true)) {
3131 exit (1 );
3232}
3333
34- $ files = shell_exec ( $ event === '--pull-request '
34+ $ command = $ event === '--pull-request '
3535 ? 'git diff --name-only --diff-filter=ACMRTUXB origin/develop..HEAD '
36- : 'git diff --name-only --diff-filter=ACMRTUXB HEAD~..HEAD ' ) ;
36+ : 'git diff --name-only --diff-filter=ACMRTUXB HEAD~..HEAD ' ;
3737
38- if (! is_string ($ files )) {
39- CLI ::error ('Unable to retrieve the list of changed files. ' , 'light_gray ' , 'red ' );
38+ $ output = [];
39+ $ resultCode = 0 ;
40+
41+ exec ($ command , $ output , $ resultCode );
42+
43+ if ($ resultCode !== 0 ) {
44+ CLI ::error (sprintf ('Unable to retrieve the list of changed files. "%s" exited with code %d. ' , $ command , $ resultCode ), 'light_gray ' , 'red ' );
4045
4146 exit (1 );
4247}
4348
49+ $ files = implode ("\n" , $ output );
50+
4451$ isCIAffected = str_contains ($ files , '.github/scripts/continuous-integration ' );
4552$ isBuildAffected = str_contains ($ files , '.github/workflows/build.yml ' );
4653$ isTestAffected = preg_match ('/tests\/Language\/(.+)Test(?:|Case)\.php/ ' , $ files ) === 1 ;
@@ -78,10 +85,11 @@ if ($count === 0 && ! ($isCIAffected || $isBuildAffected || $isTestAffected)) {
7885 exit (0 );
7986}
8087
88+ $ returns = 0 ;
89+
8190// Check this first to account for new ICU locale additions
8291if ($ count > 0 && $ count < count (AbstractTranslationTestCase::$ locales )) {
83- $ returns = 0 ;
84- $ return = 0 ;
92+ $ return = 0 ;
8593
8694 foreach ($ locales as $ locale ) {
8795 $ class = array_search ($ locale , AbstractTranslationTestCase::$ locales , true );
@@ -109,7 +117,6 @@ if ($count > 0 && $count < count(AbstractTranslationTestCase::$locales)) {
109117} elseif ($ count === count (AbstractTranslationTestCase::$ locales ) || $ isCIAffected || $ isBuildAffected || $ isTestAffected ) {
110118 $ count = count (AbstractTranslationTestCase::$ locales );
111119 ob_start ();
112- $ returns = 0 ;
113120
114121 CLI ::write ('Testing all language files in all locales. ' , 'black ' , 'yellow ' );
115122
@@ -124,7 +131,7 @@ if ($count > 0 && $count < count(AbstractTranslationTestCase::$locales)) {
124131 CLI ::write (sprintf ("Reason: %s \n" , $ reasonMessage ), 'black ' , 'yellow ' );
125132 }
126133
127- passthru ("{$ phpunit } --color=always --exclude-group=auto-review " , $ returns );
134+ passthru ("{$ phpunit } --color=always --exclude-group=auto-review --exclude-group=upstream " , $ returns );
128135
129136 $ result = ob_get_clean ();
130137 $ failed = [];
0 commit comments