#!/usr/bin/env bash # 合回验证触发件(远端 CI 推送钩子,2026-11-03 用户裁;2026-11-04 用户裁去掉回执等待)。 # 主工作区 git merge 落地后做一件事:`git push origin master` 触发远端 CI(Gitea Actions, # runner=Mac 本机 host 模式,按改动域分流跑闸)。判定结果不在本钩子取——合回即呈报本批总结, # 回合止;要看结果随时跑 tools/ci_check.sh <合并提交>(只呈报、不落盘,2026-11-04 取代原后台轮询件)。 # 推送失败=远端验证不可能发生——大声呈报并给出处置(先修推送再手动 git push,之后用现查件读态),禁静默。 # 任务 worktree 内的合并不触发(CI 只认 master);CI 红了不回滚合并——修复批合回后本钩子再推再验(追绿同链)。 set -u _GD="$(cd "$(git rev-parse --git-dir)" && pwd)" _CD="$(cd "$(git rev-parse --git-common-dir)" && pwd)" [ "$_GD" = "$_CD" ] || exit 0 REPO="$(git -C "$(dirname "$0")" rev-parse --show-toplevel 2>/dev/null || pwd)" TIP="$(git -C "$REPO" rev-parse HEAD)" if ! git -C "$REPO" push origin master >/dev/null 2>&1; then echo "[post-merge] ✗ push origin master 失败——远端 CI 无法触发!先修推送(凭据/网络),再手动 git push,然后用 tools/ci_check.sh $TIP 读态。" exit 0 fi echo "[post-merge] ✓ 已推送 origin master(commit ${TIP:0:8})——远端 CI 已触发;结果不等待,随时用 tools/ci_check.sh ${TIP:0:8} 现查。" exit 0