chore: exdev 배포 경로 단일화 및 서버 재구축 스크립트 추가

- Git 저장소/배포 work-tree를 /Users/aidev/apps/goldenChart로 통일
- 레거시 dev 경로는 심볼릭 링크로 흡수, deploy.sh에 소스 검증·no-cache 옵션
- server-rebuild-exdev.sh, verify-source-sync.sh 추가

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Macbook
2026-06-02 22:55:12 +09:00
parent 85285f65c7
commit da11a9c29f
5 changed files with 288 additions and 8 deletions
+50
View File
@@ -0,0 +1,50 @@
#!/usr/bin/env bash
# GoldenChart post-receive — Track A (git push main → deploy.sh)
# 설치: cp scripts/post-receive /Volumes/ADATA/git/goldenChart.git/hooks/post-receive
set -euo pipefail
GIT_DIR="/Volumes/ADATA/git/goldenChart.git"
DEPLOY_SCRIPT="/Volumes/ADATA/git/deploy.sh"
SUMMARY_SCRIPT="/Volumes/ADATA/git/git-push-summary.sh"
DEPLOY_LOG="/Volumes/ADATA/logs/deploy/deploy.log"
SUMMARY_DIR="/Volumes/ADATA/logs/deploy/push-summaries"
HOOK_TAG="[post-receive]"
mkdir -p "$(dirname "$DEPLOY_LOG")" "$SUMMARY_DIR"
echo ""
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG =============================="
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG Track A — git push 수신"
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG =============================="
while read -r OLDREV NEWREV REFNAME; do
BRANCH_NAME="${REFNAME#refs/heads/}"
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG 브랜치: $BRANCH_NAME ($OLDREV → $NEWREV)"
if [ -x "$SUMMARY_SCRIPT" ]; then
SUMMARY_FILE="$("$SUMMARY_SCRIPT" "$GIT_DIR" "$OLDREV" "$NEWREV" "$REFNAME" "$SUMMARY_DIR" || true)"
if [ -n "${SUMMARY_FILE:-}" ] && [ -f "$SUMMARY_FILE" ]; then
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG 변경 요약: $SUMMARY_FILE"
head -20 "$SUMMARY_FILE" | sed "s/^/$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG /"
fi
else
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG [WARN] 요약 스크립트 없음: $SUMMARY_SCRIPT"
fi
if [ "$BRANCH_NAME" = "main" ]; then
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG main → deploy.sh 실행"
export SERVICE_NAME="${SERVICE_NAME:-all}"
"$DEPLOY_SCRIPT" 2>&1 | tee -a "$DEPLOY_LOG"
EXIT_CODE=${PIPESTATUS[0]}
if [ "$EXIT_CODE" -ne 0 ]; then
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG [ERROR] 배포 실패 (exit: $EXIT_CODE)"
exit "$EXIT_CODE"
fi
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG 배포 완료"
else
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG '$BRANCH_NAME' — 배포 스킵 (main만)"
fi
done
echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG =============================="
echo ""