65 lines
1.1 KiB
Bash
Executable File
65 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
echo "========================"
|
|
echo " Davidson CI - PHP"
|
|
echo "========================"
|
|
|
|
PHP_COUNT="${DAVIDSON_PHP_COUNT:-0}"
|
|
|
|
if [ "$PHP_COUNT" -eq 0 ]; then
|
|
echo "No PHP files detected - skipping PHP module"
|
|
exit 0
|
|
fi
|
|
|
|
echo
|
|
echo "PHP files detected: $PHP_COUNT"
|
|
echo
|
|
|
|
echo "→ PHP syntax"
|
|
find . \
|
|
-type f \
|
|
-name "*.php" \
|
|
-not -path "./vendor/*" \
|
|
-print0 |
|
|
xargs -0 -n1 php -l
|
|
|
|
echo
|
|
echo "→ Composer"
|
|
|
|
if [ -f composer.json ]; then
|
|
composer validate --no-check-publish
|
|
|
|
if [ -f composer.lock ]; then
|
|
composer install \
|
|
--no-interaction \
|
|
--prefer-dist \
|
|
--no-progress
|
|
else
|
|
echo "composer.json found but no composer.lock"
|
|
fi
|
|
else
|
|
echo "No composer.json - skipping Composer"
|
|
fi
|
|
|
|
echo
|
|
echo "→ PHPStan"
|
|
|
|
if [ -x vendor/bin/phpstan ]; then
|
|
vendor/bin/phpstan analyse
|
|
else
|
|
echo "PHPStan not installed - skipping"
|
|
fi
|
|
|
|
echo
|
|
echo "→ PHPUnit"
|
|
|
|
if [ -x vendor/bin/phpunit ]; then
|
|
vendor/bin/phpunit
|
|
else
|
|
echo "PHPUnit not installed - skipping"
|
|
fi
|
|
|
|
echo
|
|
echo "PHP module completed successfully"
|