chore: remove bold markers from Chinese characters in post-receive hook comments
This commit is contained in:
+23
-23
@@ -11,11 +11,11 @@ REPO_TOPLEVEL="$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")"
|
|||||||
cd "$REPO_TOPLEVEL" || { echo "FATAL: cannot cd to $REPO_TOPLEVEL" >&2; exit 1; }
|
cd "$REPO_TOPLEVEL" || { echo "FATAL: cannot cd to $REPO_TOPLEVEL" >&2; exit 1; }
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 0. sync_worktree —— 将**工**作**树**同步到**新** push 的 HEAD
|
# 0. sync_worktree —— 将工作树同步到新 push 的 HEAD
|
||||||
# 背景:服务器 .git/config 设了 receive.denyCurrentBranch=updateInstead 时
|
# 背景:服务器 .git/config 设了 receive.denyCurrentBranch=updateInstead 时
|
||||||
# git 自**动**更**新**工作**树**但**会**跳过**此**钩子;**改**为 false 后
|
# git 自动更新工作树但会跳过此钩子;改为 false 后
|
||||||
# git **不**会**更**新**工作**树**,**手**动 reset --hard 同步**才**能**让**下**面**
|
# git 不会更新工作树,手动 reset --hard 同步才能让下面
|
||||||
# 的 build **用**上**新**代**码**。
|
# 的 build 用上新代码。
|
||||||
# ============================================================
|
# ============================================================
|
||||||
sync_worktree() {
|
sync_worktree() {
|
||||||
echo "=== sync_worktree: git reset --hard HEAD @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ==="
|
echo "=== sync_worktree: git reset --hard HEAD @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ==="
|
||||||
@@ -23,7 +23,7 @@ sync_worktree() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 1. init_log_file —— 定**义** LOG_FILE + 创**建** logs/ 目**录**
|
# 1. init_log_file —— 定义 LOG_FILE + 创建 logs/ 目录
|
||||||
# ============================================================
|
# ============================================================
|
||||||
init_log_file() {
|
init_log_file() {
|
||||||
LOG_FILE="$REPO_TOPLEVEL/logs/post-receive.log"
|
LOG_FILE="$REPO_TOPLEVEL/logs/post-receive.log"
|
||||||
@@ -31,7 +31,7 @@ init_log_file() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 2. write_metadata_header —— **覆**盖写**入**元信息(**首**次**写** → **覆**盖**让日志**开**头是**这**个)
|
# 2. write_metadata_header —— 覆盖写入元信息(首次写 → 覆盖让日志开头是这个)
|
||||||
# ============================================================
|
# ============================================================
|
||||||
write_metadata_header() {
|
write_metadata_header() {
|
||||||
{
|
{
|
||||||
@@ -44,10 +44,10 @@ write_metadata_header() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 3. copy_env_by_branch —— 根**据**分支选 env-example → .env
|
# 3. copy_env_by_branch —— 根据分支选 env-example → .env
|
||||||
# main 分支 → .env.production(prod 部署)
|
# main 分支 → .env.production(prod 部署)
|
||||||
# test 分支 → .env.local(test **不**碰 .env.production,**避**免**读**到 prod 域名)
|
# test 分支 → .env.local(test 不碰 .env.production,避免读到 prod 域名)
|
||||||
# dev 分支 → .env.local(**未**配远端**用**途,**但**保**留**)
|
# dev 分支 → .env.local(未配远端用途,但保留)
|
||||||
# ============================================================
|
# ============================================================
|
||||||
copy_env_by_branch() {
|
copy_env_by_branch() {
|
||||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||||
@@ -72,8 +72,8 @@ copy_env_by_branch() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 4. run_build —— 跑 `pnpm run build`,输出**丢**,**捕**获退出码写日志
|
# 4. run_build —— 跑 `pnpm run build`,输出丢,捕获退出码写日志
|
||||||
# 返回:build 退出码(main **用** if ! run_build 决**定**是否**继**续)
|
# 返回:build 退出码(main 用 if ! run_build 决定是否继续)
|
||||||
# ============================================================
|
# ============================================================
|
||||||
run_build() {
|
run_build() {
|
||||||
echo "=== build START @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" >> "$LOG_FILE"
|
echo "=== build START @ $(date -u +%Y-%m-%dT%H:%M:%SZ) ===" >> "$LOG_FILE"
|
||||||
@@ -85,10 +85,10 @@ run_build() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 5. stop_existing_next —— 两阶段 kill + 等 1s 确**保**端口**完**全释放
|
# 5. stop_existing_next —— 两阶段 kill + 等 1s 确保端口完全释放
|
||||||
# 1) 优**雅**关**闭**(SIGTERM)—— 旧**进**程**自**己 drain
|
# 1) 优雅关闭(SIGTERM)—— 旧进程自己 drain
|
||||||
# 2) 等 2s
|
# 2) 等 2s
|
||||||
# 3) 强杀(SIGKILL)—— **还**在**的**话
|
# 3) 强杀(SIGKILL)—— 还在的话
|
||||||
# 4) 等 1s
|
# 4) 等 1s
|
||||||
# ============================================================
|
# ============================================================
|
||||||
stop_existing_next() {
|
stop_existing_next() {
|
||||||
@@ -104,10 +104,10 @@ stop_existing_next() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 6. launch_next —— 后**台**启 `pnpm run start`,捕 PID
|
# 6. launch_next —— 后台启 `pnpm run start`,捕 PID
|
||||||
# ============================================================
|
# ============================================================
|
||||||
launch_next() {
|
launch_next() {
|
||||||
# next stdout/stderr 接**到** logs/next-server.log(**覆**盖**模式**,**每**次 deploy **重**新**开**始)
|
# next stdout/stderr 接到 logs/next-server.log(覆盖模式,每次 deploy 重新开始)
|
||||||
NEXT_LOG_FILE="$REPO_TOPLEVEL/logs/next-server.log"
|
NEXT_LOG_FILE="$REPO_TOPLEVEL/logs/next-server.log"
|
||||||
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 > "$NEXT_LOG_FILE" 2>&1 &
|
nohup pnpm run start > "$NEXT_LOG_FILE" 2>&1 &
|
||||||
@@ -116,27 +116,27 @@ launch_next() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# 7. log_abort —— build 失败**时**写**结**束**标**记(**不**输**出** START LAUNCH)
|
# 7. log_abort —— build 失败时写结束标记(不输出 START LAUNCH)
|
||||||
# ============================================================
|
# ============================================================
|
||||||
log_abort() {
|
log_abort() {
|
||||||
echo "=== ABORTED @ $(date -u +%Y-%m-%dT%H:%M:%SZ) (build failed, start skipped) ===" >> "$LOG_FILE"
|
echo "=== ABORTED @ $(date -u +%Y-%m-%dT%H:%M:%SZ) (build failed, start skipped) ===" >> "$LOG_FILE"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ============================================================
|
# ============================================================
|
||||||
# main —— 调**度**所**有**步骤
|
# main —— 调度所有步骤
|
||||||
# ============================================================
|
# ============================================================
|
||||||
main() {
|
main() {
|
||||||
init_log_file
|
init_log_file
|
||||||
sync_worktree # **先**同步工作**树**到**新** HEAD(**与** git config denyCurrentBranch 配**合**)
|
sync_worktree # 先同步工作树到新 HEAD(与 git config denyCurrentBranch 配合)
|
||||||
write_metadata_header # **先**覆盖写元信息(**这**样 env copy 日**志****能**保留在**后**面)
|
write_metadata_header # 先覆盖写元信息(这样 env copy 日志能保留在后面)
|
||||||
copy_env_by_branch # **追**加 env copy 日志
|
copy_env_by_branch # 追加 env copy 日志
|
||||||
|
|
||||||
if ! run_build; then
|
if ! run_build; then
|
||||||
log_abort
|
log_abort
|
||||||
exit $BUILD_EXIT # build 失败 → **不**启 start(**避**免**用**旧 .next **跑**新代码)
|
exit $BUILD_EXIT # build 失败 → 不启 start(避免用旧 .next 跑新代码)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
stop_existing_next # build 成功 → **先**关旧**进**程
|
stop_existing_next # build 成功 → 先关旧进程
|
||||||
launch_next # 再启新
|
launch_next # 再启新
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user