diff --git a/deploy/deploy.sh b/deploy/deploy.sh index b6906bb..1456b11 100755 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -31,6 +31,8 @@ if [ -n "$(git status --porcelain)" ]; then fi git push origin "$BRANCH" LOCAL=$(git rev-parse HEAD) +# /health 返回 7 位短哈希,比对统一用短哈希 +LOCAL_SHORT=$(git rev-parse --short=7 HEAD) echo " 本地版本 ${LOCAL:0:8} 已推送,等待 cc1 自动更新…" echo "==> [2/3] 等待 cc1 更新(轮询 ${HEALTH_URL})" @@ -43,7 +45,7 @@ deadline=$(( $(date +%s) + TIMEOUT )) REMOTE="" while [ "$(date +%s)" -lt "$deadline" ]; do REMOTE=$(fetch_remote_commit) - if [ "$REMOTE" = "$LOCAL" ]; then + if [ "$REMOTE" = "$LOCAL_SHORT" ]; then echo " ✅ cc1 已更新至 ${LOCAL:0:8}" break fi @@ -51,7 +53,7 @@ while [ "$(date +%s)" -lt "$deadline" ]; do sleep "$POLL_INTERVAL" done -if [ "$REMOTE" != "$LOCAL" ]; then +if [ "$REMOTE" != "$LOCAL_SHORT" ]; then echo "❌ 部署超时(${TIMEOUT}s 内 cc1 未更新至 ${LOCAL:0:8},当前线上 ${REMOTE:0:8})" echo " 排查:ssh cc1 'journalctl -u vps-manager-update.service -n 30'" exit 1