ci(deploy): branch-aware env copy and restore start output silencing

- Select env template per branch: main → .env.production, test/dev → .env.local
- Skip env copy on unknown branches with warning log
- Revert pnpm run start output to /dev/null (debugging complete)
- Reorder LOG_FILE definition before env-copy block so case branches can log
This commit is contained in:
2026-06-12 18:53:30 +08:00
parent c90d2a5139
commit f72d1ce94f
+24 -7
View File
@@ -8,13 +8,31 @@
# - 实际调用 `pnpm run build`(输出丢,仅记退出码) # - 实际调用 `pnpm run build`(输出丢,仅记退出码)
# - 再后台启 `pnpm run start`nohup,输出丢,hook 立即返回) # - 再后台启 `pnpm run start`nohup,输出丢,hook 立即返回)
# 准备生产环境变量(从 env-example/.env.production.example 复制 → .env.production # 日志文件路径(**覆盖**模式:每次推送都生成全新日志)—— **先**定**义**给后续 echo 用
cp -f env-example/.env.production.example .env.production
# 日志文件路径(**覆盖**模式:每次推送都生成全新日志)
LOG_FILE="$(git rev-parse --show-toplevel)/logs/post-receive.log" LOG_FILE="$(git rev-parse --show-toplevel)/logs/post-receive.log"
mkdir -p "$(dirname "$LOG_FILE")" mkdir -p "$(dirname "$LOG_FILE")"
# **根**据**分**支选**择** env-example → .envtest 服**务**器**只**需 .env.local**不**碰 .env.production
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo "=== branch: $CURRENT_BRANCH ===" >> "$LOG_FILE"
case "$CURRENT_BRANCH" in
main)
cp -f env-example/.env.production.example .env.production
echo "=== env: copied .env.production (main → prod) ===" >> "$LOG_FILE"
;;
test)
cp -f env-example/.env.local.example .env.local
echo "=== env: copied .env.local (test → test) ===" >> "$LOG_FILE"
;;
dev)
cp -f env-example/.env.development.example .env.local
echo "=== env: copied .env.local (dev → dev) ===" >> "$LOG_FILE"
;;
*)
echo "=== env: UNKNOWN branch '$CURRENT_BRANCH', skip env copy ===" >> "$LOG_FILE"
;;
esac
# 元信息头(**首**次写 → 覆盖) # 元信息头(**首**次写 → 覆盖)
{ {
echo "=== post-receive @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" echo "=== post-receive @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ==="
@@ -53,10 +71,9 @@ echo "=== stop DONE @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" >> "$LOG_FILE"
echo "" >> "$LOG_FILE" echo "" >> "$LOG_FILE"
# pnpm run start → **后台**跑(nohup ... &),long-running 进程 # pnpm run start → **后台**跑(nohup ... &),long-running 进程
# ****时**改**next 输**出**也**接**到 LOG_FILE**为**排**查** Server error # 输出****> /dev/null 2>&1)—— 真实 next 日志要看 next 自身 stdout/stderr
# —— 排**查**完**后**改回 `> /dev/null 2>&1`
echo "=== start LAUNCH @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" >> "$LOG_FILE" echo "=== start LAUNCH @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" >> "$LOG_FILE"
nohup pnpm run start >> "$LOG_FILE" 2>&1 & nohup pnpm run start > /dev/null 2>&1 &
START_PID=$! START_PID=$!
echo "=== start PID=$START_PID @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" >> "$LOG_FILE" echo "=== start PID=$START_PID @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" >> "$LOG_FILE"