From 238cffcbcffac1a72e9f536e334f068e5f9d325a Mon Sep 17 00:00:00 2001 From: Xiaoxia AI Date: Sun, 21 Jun 2026 23:11:36 +0800 Subject: [PATCH] fix(deploy): align staging deploy host prefix --- infra/docker/deploy-staging.sh | 7 ++++--- tests/unit/test_release_scripts.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/infra/docker/deploy-staging.sh b/infra/docker/deploy-staging.sh index 401226e79..da5c38e14 100644 --- a/infra/docker/deploy-staging.sh +++ b/infra/docker/deploy-staging.sh @@ -1,9 +1,10 @@ #!/bin/sh set -eu -ROOT_DIR="/host/var/lib/xiaoxia-saas-staging/repo" +HOST_PREFIX="${HOST_PREFIX:-/host}" +ROOT_DIR="$HOST_PREFIX/var/lib/xiaoxia-saas-staging/repo" COMPOSE_DIR="$ROOT_DIR/infra/docker" -ENV_FILE="/host/var/lib/xiaoxia-saas-staging/.env" +ENV_FILE="$HOST_PREFIX/var/lib/xiaoxia-saas-staging/.env" ensure_container_running() { name="$1" @@ -22,7 +23,7 @@ ensure_container_running() { cd "$ROOT_DIR" cp "$ENV_FILE" "$ROOT_DIR/.env" -mkdir -p "$ROOT_DIR/apps/web/public" /host/var/lib/xiaoxia-saas-staging/generated +mkdir -p "$ROOT_DIR/apps/web/public" "$HOST_PREFIX/var/lib/xiaoxia-saas-staging/generated" [ -f "$ROOT_DIR/apps/web/public/.keep" ] || printf 'placeholder' > "$ROOT_DIR/apps/web/public/.keep" ensure_container_running xiaoxia-postgres diff --git a/tests/unit/test_release_scripts.py b/tests/unit/test_release_scripts.py index 30d054438..665036471 100644 --- a/tests/unit/test_release_scripts.py +++ b/tests/unit/test_release_scripts.py @@ -57,6 +57,16 @@ def test_init_production_env_is_non_deploying_and_separated(): assert "docker run" not in script +def test_staging_deploy_supports_host_prefix_and_web_build(): + script = Path("infra/docker/deploy-staging.sh").read_text(encoding="utf-8") + + assert 'HOST_PREFIX="${HOST_PREFIX:-/host}"' in script + assert 'ROOT_DIR="$HOST_PREFIX/var/lib/xiaoxia-saas-staging/repo"' in script + assert 'ENV_FILE="$HOST_PREFIX/var/lib/xiaoxia-saas-staging/.env"' in script + assert '"$HOST_PREFIX/var/lib/xiaoxia-saas-staging/generated"' in script + assert "docker compose build --pull=false web" in script + + def test_deploy_scripts_build_web_image_explicitly(): staging_script = Path("infra/docker/deploy-staging.sh").read_text(encoding="utf-8") production_script = Path("infra/docker/deploy-production.sh").read_text(encoding="utf-8")