From a842edea97b30848c39894a268ea01edd9adafb3 Mon Sep 17 00:00:00 2001 From: Jeppe Bundgaard Date: Tue, 21 Apr 2026 22:11:06 +0200 Subject: [PATCH] Sync PHP app into php1 on CI runner --- docker-compose.yml | 2 +- scripts/ci/run-php-suite.sh | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3f53f96c..5b220835 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -211,7 +211,7 @@ services: env_file: - .env environment: - AUTO_COMPOSER_INSTALL: "true" + AUTO_COMPOSER_INSTALL: "${AUTO_COMPOSER_INSTALL:-true}" EDGE_BROKER_URL: ${EDGE_BROKER_URL:-http://edge-broker:4300} EDGE_BROKER_SHARED_SECRET: ${EDGE_BROKER_SHARED_SECRET:-truckwash-edge-dev} volumes: diff --git a/scripts/ci/run-php-suite.sh b/scripts/ci/run-php-suite.sh index 2015f790..a0793cb0 100755 --- a/scripts/ci/run-php-suite.sh +++ b/scripts/ci/run-php-suite.sh @@ -18,6 +18,8 @@ if [[ -f .env ]]; then set +a fi +export AUTO_COMPOSER_INSTALL=false + cleanup() { docker compose down -v --remove-orphans || true } @@ -70,6 +72,23 @@ run_php_command() { docker exec "${env_args[@]}" php1 sh -lc "cd /var/www/html && ${PHP_COMMAND}" } +sync_php_app_into_container() { + docker exec php1 sh -lc 'mkdir -p /var/www/html && find /var/www/html -mindepth 1 -maxdepth 1 -exec rm -rf {} +' + docker cp "${repo_root}/services/nginx/app/." php1:/var/www/html/ +} + +install_php_dependencies() { + PHP_COMMAND="composer install --no-interaction --prefer-dist" + docker_exec_php1 + docker exec php1 sh -lc ' + module_dir="/var/www/html/modules/washcertificates" + if [ -f "$module_dir/composer.json" ]; then + cd "$module_dir" + composer install --no-interaction --prefer-dist + fi + ' +} + docker compose down -v --remove-orphans || true trap cleanup EXIT @@ -85,8 +104,8 @@ if [[ "$suite" != "unit" ]]; then wait_for_container_healthy mysql-debug fi -PHP_COMMAND="composer install --no-interaction --prefer-dist" -docker_exec_php1 +sync_php_app_into_container +install_php_dependencies case "$suite" in unit) @@ -94,6 +113,8 @@ case "$suite" in docker_exec_php1 PHP_COMMAND="composer test:coverage" docker_exec_php1 + mkdir -p "${repo_root}/services/nginx/app/build/logs" + docker cp php1:/var/www/html/build/logs/clover.xml "${repo_root}/services/nginx/app/build/logs/clover.xml" 2>/dev/null || true ;; integration) PHP_COMMAND="composer test:integration"