From e326bce2fc18cbb3b2eb5ed46955a7d0b9db0279 Mon Sep 17 00:00:00 2001 From: Pauljd Date: Tue, 8 Sep 2026 17:24:11 +0100 Subject: [PATCH] Add real PHP module status reporting --- modules/php.sh | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/modules/php.sh b/modules/php.sh index 7d76915..f993204 100755 --- a/modules/php.sh +++ b/modules/php.sh @@ -1,14 +1,21 @@ #!/bin/bash -set -euo pipefail +set -u echo "========================" echo " Davidson CI - PHP" echo "========================" PHP_COUNT="${DAVIDSON_PHP_COUNT:-0}" +PHP_STATUS="SKIP" + +set_status() { + PHP_STATUS="$1" + echo "DAVIDSON_PHP_STATUS=$PHP_STATUS" >> "${GITHUB_ENV:-/dev/null}" +} if [ "$PHP_COUNT" -eq 0 ]; then echo "No PHP files detected - skipping PHP module" + set_status "SKIP" exit 0 fi @@ -16,25 +23,35 @@ echo echo "PHP files detected: $PHP_COUNT" echo +FAIL=0 + echo "→ PHP syntax" -find . \ +if ! find . \ -type f \ -name "*.php" \ -not -path "./vendor/*" \ -print0 | -xargs -0 -n1 php -l + xargs -0 -n1 php -l +then + FAIL=1 +fi echo echo "→ Composer" if [ -f composer.json ]; then - composer validate --no-check-publish + if ! composer validate --no-check-publish; then + FAIL=1 + fi if [ -f composer.lock ]; then - composer install \ + if ! composer install \ --no-interaction \ --prefer-dist \ --no-progress + then + FAIL=1 + fi else echo "composer.json found but no composer.lock" fi @@ -46,7 +63,9 @@ echo echo "→ PHPStan" if [ -x vendor/bin/phpstan ]; then - vendor/bin/phpstan analyse + if ! vendor/bin/phpstan analyse; then + FAIL=1 + fi else echo "PHPStan not installed - skipping" fi @@ -55,10 +74,21 @@ echo echo "→ PHPUnit" if [ -x vendor/bin/phpunit ]; then - vendor/bin/phpunit + if ! vendor/bin/phpunit; then + FAIL=1 + fi else echo "PHPUnit not installed - skipping" fi -echo -echo "PHP module completed successfully" +if [ "$FAIL" -eq 0 ]; then + set_status "PASS" + echo + echo "PHP module completed successfully" + exit 0 +else + set_status "FAIL" + echo + echo "PHP module failed" + exit 1 +fi \ No newline at end of file