feat: opt ai group

This commit is contained in:
2026-10-03 19:33:03 +08:00
parent b95cb4a813
commit 7358008936
13 changed files with 382 additions and 8 deletions

View File

@@ -96,10 +96,10 @@ if [ "$TARGET" != web ]; then
step "推送后端源码与锁文件 → ${REMOTE_DIR}(旧源码保留为 src.old 以便回滚)"
tar czf - "${TAR_EXCLUDES[@]}" package.json pnpm-workspace.yaml pnpm-lock.yaml \
shared/package.json shared/tsconfig.json shared/src \
server/package.json server/tsconfig.json server/src \
server/package.json server/tsconfig.json server/src server/assets \
web/package.json \
| "${SSH[@]}" "set -e; cd '$REMOTE_DIR'; rm -rf .staging; mkdir .staging; $UNTAR -C .staging;
for d in server/src shared/src; do rm -rf \"\$d.old\"; [ -d \"\$d\" ] && mv \"\$d\" \"\$d.old\"; mv \".staging/\$d\" \"\$d\"; done;
for d in server/src shared/src server/assets; do rm -rf \"\$d.old\"; [ -d \"\$d\" ] && mv \"\$d\" \"\$d.old\"; mv \".staging/\$d\" \"\$d\"; done;
cp .staging/package.json .staging/pnpm-workspace.yaml .staging/pnpm-lock.yaml .;
cp .staging/shared/package.json .staging/shared/tsconfig.json shared/;
cp .staging/server/package.json .staging/server/tsconfig.json server/;
@@ -115,7 +115,7 @@ if [ "$TARGET" != web ]; then
echo "健康检查 20 秒未通过,最近日志:"
"${SSH[@]}" "journalctl -u $SERVICE -n 30 --no-pager -o cat" || true
step "回滚到上一版源码"
"${SSH[@]}" "set -e; cd '$REMOTE_DIR'; for d in server/src shared/src; do [ -d \"\$d.old\" ] && rm -rf \"\$d\" && mv \"\$d.old\" \"\$d\"; done; chown -R $RUN_USER:$RUN_USER .; systemctl restart $SERVICE"
"${SSH[@]}" "set -e; cd '$REMOTE_DIR'; for d in server/src shared/src server/assets; do [ -d \"\$d.old\" ] && rm -rf \"\$d\" && mv \"\$d.old\" \"\$d\"; done; chown -R $RUN_USER:$RUN_USER .; systemctl restart $SERVICE"
fail "已回滚到旧源码并重启(锁文件与依赖未回滚)。请在本地复现后再部署"
fi
fi
@@ -131,7 +131,7 @@ if [ "$TARGET" != server ]; then
if curl -sf -m 10 "$PUBLIC_URL/" | grep -q "$ASSET"; then echo "公网首页已引用新入口脚本 $ASSET"; else echo "公网首页未引用 ${ASSET}(缓存或部署失败)"; OK=0; fi
fi
if [ "$TARGET" != web ]; then
L="$(tree_hash_local server/src shared/src)"; R="$(tree_hash_remote server/src shared/src)"
L="$(tree_hash_local server/src shared/src server/assets)"; R="$(tree_hash_remote server/src shared/src server/assets)"
[ "$L" = "$R" ] && echo "后端源码指纹一致:${L:0:12}" || { echo "后端源码指纹不一致:本地 ${L:0:12} 远端 ${R:0:12}"; OK=0; }
"${SSH[@]}" "systemctl is-active --quiet $SERVICE" && echo "systemd 服务 active" || { echo "systemd 服务未运行"; OK=0; }
fi