R30-1 R30-9: 建立零人工发布门禁并补齐高频回归

这个提交包含在:
2026-03-23 10:00:26 +08:00
父节点 c17a72830c
当前提交 994d98e74c
共修改 22 个文件,包含 1189 行新增和 41 行删除
+33 -4
查看文件
@@ -15,6 +15,7 @@ COMPOSE_FILE="deploy/trialrun/docker-compose.yml"
LOCAL_ENV_FILE="deploy/trialrun/.env"
ENV_CONTRACT_SCRIPT="deploy/trialrun/validate-env-contract.js"
RUNTIME_SMOKE_SCRIPT="server/src/scripts/smoke-trialrun-runtime.js"
EXTERNAL_DEPS_SMOKE_SCRIPT="server/src/scripts/smoke-external-deps.js"
need_cmd() {
command -v "$1" >/dev/null 2>&1 || {
@@ -42,6 +43,11 @@ if [[ ! -f "${ROOT_DIR}/${RUNTIME_SMOKE_SCRIPT}" ]]; then
exit 1
fi
if [[ ! -f "${ROOT_DIR}/${EXTERNAL_DEPS_SMOKE_SCRIPT}" ]]; then
echo "[ERROR] 缺少 ${EXTERNAL_DEPS_SMOKE_SCRIPT}" >&2
exit 1
fi
if [[ "${SYNC_ENV}" == "1" && ! -f "${ROOT_DIR}/${LOCAL_ENV_FILE}" ]]; then
echo "[ERROR] SYNC_ENV=1 但本地不存在 ${LOCAL_ENV_FILE}" >&2
exit 1
@@ -144,19 +150,42 @@ if [[ "$ready_ok" != "1" ]]; then
exit 1
fi
echo ">>> 4.5 执行 runtime smoke"
echo ">>> 4.5 执行 external deps smoke"
if ! "${compose_cmd[@]}" exec -T server node src/scripts/smoke-external-deps.js; then
echo "[ERROR] external deps smoke 失败,输出最近 server 日志" >&2
"${compose_cmd[@]}" logs --tail=200 server || true
exit 1
fi
echo ">>> 4.6 执行 runtime smoke"
if ! "${compose_cmd[@]}" exec -T server node src/scripts/smoke-trialrun-runtime.js; then
echo "[ERROR] runtime smoke 失败,输出最近 server 日志" >&2
"${compose_cmd[@]}" logs --tail=200 server || true
exit 1
fi
echo ">>> 4.6 当前服务状态"
echo ">>> 4.7 当前服务状态"
"${compose_cmd[@]}" ps
REMOTE
echo ">>> 5. 部署完成"
LIVE_SMOKE_READY=1
for required_key in LIVE_SMOKE_ADMIN_IDENTIFIER LIVE_SMOKE_ADMIN_PASSWORD LIVE_SMOKE_EMPLOYEE_IDENTIFIER LIVE_SMOKE_EMPLOYEE_PASSWORD; do
if [[ -z "${!required_key:-}" ]]; then
LIVE_SMOKE_READY=0
break
fi
done
if [[ "$LIVE_SMOKE_READY" == "1" ]]; then
echo ">>> 5. 执行部署后 live smoke"
bash "${ROOT_DIR}/scripts/qa/run-web-gates.sh" smoke-live
else
echo ">>> 5. 跳过部署后 live smoke(未提供完整 LIVE_SMOKE_* 凭据)"
fi
echo ">>> 6. 部署完成"
echo " 远端目录: ${REMOTE_DIR}"
echo " 环境文件: ${REMOTE_ENV_FILE}"
echo " 已自动执行:契约校验 + /ready + runtime smoke"
echo " 已自动执行:契约校验 + /ready + external deps smoke + runtime smoke"
echo " 若本地已配置 LIVE_SMOKE_*,部署后会自动补跑网页 live smoke"
echo " 请确认 Nginx 已把 OA 域名反代到 127.0.0.1:3000"