Add real PHP module status reporting
pauljd/davidson-ci: Davidson CI / quality (push) Successful in 11s

This commit is contained in:
2026-09-08 17:24:11 +01:00
parent 96b0b84200
commit e326bce2fc
+39 -9
View File
@@ -1,14 +1,21 @@
#!/bin/bash #!/bin/bash
set -euo pipefail set -u
echo "========================" echo "========================"
echo " Davidson CI - PHP" echo " Davidson CI - PHP"
echo "========================" echo "========================"
PHP_COUNT="${DAVIDSON_PHP_COUNT:-0}" 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 if [ "$PHP_COUNT" -eq 0 ]; then
echo "No PHP files detected - skipping PHP module" echo "No PHP files detected - skipping PHP module"
set_status "SKIP"
exit 0 exit 0
fi fi
@@ -16,25 +23,35 @@ echo
echo "PHP files detected: $PHP_COUNT" echo "PHP files detected: $PHP_COUNT"
echo echo
FAIL=0
echo "→ PHP syntax" echo "→ PHP syntax"
find . \ if ! find . \
-type f \ -type f \
-name "*.php" \ -name "*.php" \
-not -path "./vendor/*" \ -not -path "./vendor/*" \
-print0 | -print0 |
xargs -0 -n1 php -l xargs -0 -n1 php -l
then
FAIL=1
fi
echo echo
echo "→ Composer" echo "→ Composer"
if [ -f composer.json ]; then 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 if [ -f composer.lock ]; then
composer install \ if ! composer install \
--no-interaction \ --no-interaction \
--prefer-dist \ --prefer-dist \
--no-progress --no-progress
then
FAIL=1
fi
else else
echo "composer.json found but no composer.lock" echo "composer.json found but no composer.lock"
fi fi
@@ -46,7 +63,9 @@ echo
echo "→ PHPStan" echo "→ PHPStan"
if [ -x vendor/bin/phpstan ]; then if [ -x vendor/bin/phpstan ]; then
vendor/bin/phpstan analyse if ! vendor/bin/phpstan analyse; then
FAIL=1
fi
else else
echo "PHPStan not installed - skipping" echo "PHPStan not installed - skipping"
fi fi
@@ -55,10 +74,21 @@ echo
echo "→ PHPUnit" echo "→ PHPUnit"
if [ -x vendor/bin/phpunit ]; then if [ -x vendor/bin/phpunit ]; then
vendor/bin/phpunit if ! vendor/bin/phpunit; then
FAIL=1
fi
else else
echo "PHPUnit not installed - skipping" echo "PHPUnit not installed - skipping"
fi fi
echo if [ "$FAIL" -eq 0 ]; then
echo "PHP module completed successfully" set_status "PASS"
echo
echo "PHP module completed successfully"
exit 0
else
set_status "FAIL"
echo
echo "PHP module failed"
exit 1
fi