diff --git a/scripts/redeploy.sh b/scripts/redeploy.sh index ea86f24d..7afd54b2 100755 --- a/scripts/redeploy.sh +++ b/scripts/redeploy.sh @@ -13,8 +13,14 @@ # 2. docker compose build api web # — rebuild both images so source + static assets are fresh # 3. docker compose run --rm migrate -# — apply Drizzle schema + run the seed (idempotent) -# 4. docker compose up -d +# — apply Drizzle schema (migrate.sh also runs the seed, +# but tolerates seed failures — see step 4) +# 4. docker compose run --rm --entrypoint "" --no-deps migrate \ +# pnpm --filter @workspace/scripts run seed +# — explicit seed pass that fails hard if the seed +# errors. Catches new-app / renamed-app regressions +# that migrate.sh would otherwise swallow. +# 5. docker compose up -d # — restart api + web with the new images # # Safe to re-run. Each step is idempotent. @@ -26,7 +32,7 @@ for arg in "$@"; do case "$arg" in --no-pull) PULL=0 ;; -h|--help) - sed -n '2,21p' "$0" + sed -n '2,27p' "$0" exit 0 ;; *) @@ -72,13 +78,17 @@ else step "1/4 git pull (skipped via --no-pull)" fi -step "2/4 docker compose build api web (rebuilds SPA + API images)" +step "2/5 docker compose build api web (rebuilds SPA + API images)" "${DC[@]}" build api web -step "3/4 docker compose run --rm migrate (schema push + seed)" +step "3/5 docker compose run --rm migrate (schema push + tolerant seed)" "${DC[@]}" run --rm migrate -step "4/4 docker compose up -d (restart with the new images)" +step "4/5 explicit seed pass (fails hard on seed regressions)" +"${DC[@]}" run --rm --no-deps --entrypoint "" migrate \ + pnpm --filter @workspace/scripts run seed + +step "5/5 docker compose up -d (restart with the new images)" "${DC[@]}" up -d echo