From 2874ab0ac00dfa37bdd29d29ec0a06736621ff87 Mon Sep 17 00:00:00 2001 From: Xiaoxia AI Date: Sun, 21 Jun 2026 16:49:00 +0800 Subject: [PATCH] fix(deploy): rebuild web image during releases --- infra/docker/deploy-production.sh | 1 + infra/docker/deploy-staging.sh | 1 + tests/unit/test_release_scripts.py | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/infra/docker/deploy-production.sh b/infra/docker/deploy-production.sh index 279d64657..618341149 100755 --- a/infra/docker/deploy-production.sh +++ b/infra/docker/deploy-production.sh @@ -41,6 +41,7 @@ export COMPOSE_PROJECT_NAME=xiaoxia-production-app docker compose --env-file "$ENV_FILE" build --pull=false api docker compose --env-file "$ENV_FILE" build --pull=false worker +docker compose --env-file "$ENV_FILE" build --pull=false web docker compose --env-file "$ENV_FILE" run --rm --no-deps api sh -c ' cd /app && python /app/scripts/validate_release_env.py --from-environ --strict-external && diff --git a/infra/docker/deploy-staging.sh b/infra/docker/deploy-staging.sh index f45d22876..401226e79 100644 --- a/infra/docker/deploy-staging.sh +++ b/infra/docker/deploy-staging.sh @@ -36,6 +36,7 @@ export COMPOSE_DOCKER_CLI_BUILD=0 docker compose build --pull=false api docker compose build --pull=false worker +docker compose build --pull=false web docker compose run --rm --no-deps api sh -c ' cd /app set +e diff --git a/tests/unit/test_release_scripts.py b/tests/unit/test_release_scripts.py index fd134b3aa..42fcee671 100644 --- a/tests/unit/test_release_scripts.py +++ b/tests/unit/test_release_scripts.py @@ -57,6 +57,14 @@ def test_init_production_env_is_non_deploying_and_separated(): assert "docker run" not 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") + + assert "docker compose build --pull=false web" in staging_script + assert "docker compose --env-file \"$ENV_FILE\" build --pull=false web" in production_script + + def test_backup_postgres_writes_manifest_and_version(): script = Path("scripts/backup_postgres.sh").read_text(encoding="utf-8")