#!/usr/bin/env bash # exAichatbot_agent — Gitea post-receive (main push → deploy) # 설치: setup-gitea.sh 가 server hooks/post-receive 로 복사 set -euo pipefail GIT_DIR="/Volumes/ADATA/git/exAichatbot_agent.git" WORK_TREE="/Users/aidev/dev/exAichatbot_agent" DEPLOY_SCRIPT="/Volumes/ADATA/git/deploy-exAichatbot_agent.sh" DEPLOY_LOG="/Volumes/ADATA/logs/deploy/exAichatbot_agent.log" HOOK_TAG="[post-receive]" mkdir -p "$(dirname "$DEPLOY_LOG")" echo "" echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG ==============================" echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG exAichatbot_agent 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 [[ "$BRANCH_NAME" != "main" ]]; then echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG main 외 브랜치 — 배포 생략" continue fi if [[ ! -x "$DEPLOY_SCRIPT" ]]; then echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG [ERROR] deploy 스크립트 없음: $DEPLOY_SCRIPT" exit 1 fi echo "$(date '+%Y-%m-%d %H:%M:%S') $HOOK_TAG deploy 실행" export GIT_DIR WORK_TREE "$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 배포 완료" done