From cfabfa8f651976f74517637ecae8376dfd3b4eb6 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Sun, 30 Aug 2026 22:00:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=9F=E4=BA=A7=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E6=B1=A1=E6=9F=93=E9=80=89=E5=8F=B7=E7=BD=91=E5=8D=A0?= =?UTF-8?q?=E4=BD=8D=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/deploy-prod.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/scripts/deploy-prod.sh b/scripts/deploy-prod.sh index 249eaa9..cef2192 100755 --- a/scripts/deploy-prod.sh +++ b/scripts/deploy-prod.sh @@ -96,6 +96,7 @@ RESET_DB=0 FOLLOW_LOGS=0 SKIP_CHECK=0 NO_CLEAN=0 +SHOW_DIST_BACKUP_DIR="" while [[ $# -gt 0 ]]; do case "$1" in @@ -261,6 +262,26 @@ export_caddy_env() { export CADDY_SHOW_DOMAIN } +restore_show_dist_placeholders() { + if [[ -z "${SHOW_DIST_BACKUP_DIR}" || ! -d "${SHOW_DIST_BACKUP_DIR}" ]]; then + return 0 + fi + local show_dist="${ROOT_DIR}/deploy/caddy/show-dist" + local git_restore_dir + git_restore_dir="$(mktemp -d "${TMPDIR:-/tmp}/hfb-show-dist-restore.XXXXXX")" + rm -rf "${show_dist}" + mkdir -p "${show_dist}" + if git -C "${ROOT_DIR}" show HEAD:deploy/caddy/show-dist/.gitkeep >"${git_restore_dir}/.gitkeep" 2>/dev/null \ + && git -C "${ROOT_DIR}" show HEAD:deploy/caddy/show-dist/index.html >"${git_restore_dir}/index.html" 2>/dev/null; then + cp -a "${git_restore_dir}/." "${show_dist}/" + else + cp -a "${SHOW_DIST_BACKUP_DIR}/." "${show_dist}/" + fi + rm -rf "${git_restore_dir}" + rm -rf "${SHOW_DIST_BACKUP_DIR}" + SHOW_DIST_BACKUP_DIR="" +} + # 准备选号网静态资源与 Caddy 站点配置(可选) prepare_show_site() { local conf_dir="${ROOT_DIR}/deploy/caddy/conf.d" @@ -355,6 +376,10 @@ prepare_show_site() { log_error "若仍网络失败,可在 backend/.env 设置 NPM_REGISTRY=https://registry.npmmirror.com 后重试" exit 1 fi + # show-dist 中的 .gitkeep/index.html 是仓库占位文件。备份后再写入构建产物, + # 退出时由 restore_show_dist_placeholders 恢复,避免每次部署污染工作区。 + SHOW_DIST_BACKUP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/hfb-show-dist.XXXXXX")" + cp -a "${show_dist}/." "${SHOW_DIST_BACKUP_DIR}/" rm -rf "${show_dist}" mkdir -p "${show_dist}" cp -a "${show_dir}/dist/." "${show_dist}/" @@ -579,6 +604,7 @@ main() { need_cmd flock validate_env export_caddy_env + trap restore_show_dist_placeholders EXIT prepare_log_dir prepare_backup_status_dir # 选号网需在 build caddy 之前准备 show-dist 与 conf.d