fix(deploy): 版本比对统一用短哈希,修复永不匹配的bug
This commit is contained in:
+4
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user