Agent 2.0 exdev 서버 배포 스택
- server-dev start/stop/deploy 및 Gitea push 자동 배포 - local-dev 로컬 개발 환경 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Executable
+71
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env bash
|
||||
# ==============================================================================
|
||||
# exAichatbot_agent — Gitea push → exdev 서버 빌드·배포
|
||||
# 설치: /Volumes/ADATA/git/deploy-exAichatbot_agent.sh
|
||||
# 호출: post-receive (main 브랜치 push)
|
||||
# ==============================================================================
|
||||
set -euo pipefail
|
||||
|
||||
GIT_DIR="${GIT_DIR:-/Volumes/ADATA/gitea/data/gitea-repositories/aidev/exaichatbot_agent.git}"
|
||||
WORK_TREE="${WORK_TREE:-/Users/aidev/dev/exAichatbot_agent}"
|
||||
BRANCH="${BRANCH:-main}"
|
||||
DEPLOY_LOG="${DEPLOY_LOG:-/Volumes/ADATA/logs/deploy/exAichatbot_agent.log}"
|
||||
LOG_TAG="[exAichatbot_agent-deploy]"
|
||||
|
||||
# 레거시 bare repo (Gitea 미사용 시)
|
||||
# GIT_DIR=/Volumes/ADATA/git/exAichatbot_agent.git
|
||||
|
||||
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/Applications/Docker.app/Contents/Resources/bin:${PATH:-/usr/bin:/bin}"
|
||||
|
||||
mkdir -p "$(dirname "$DEPLOY_LOG")"
|
||||
exec >> "$DEPLOY_LOG" 2>&1
|
||||
|
||||
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') $LOG_TAG $*"; }
|
||||
fail() { log "[ERROR] $*"; exit 1; }
|
||||
|
||||
LOCK_FILE="/tmp/exAichatbot_agent_deploy.lock"
|
||||
if [[ -f "$LOCK_FILE" ]]; then
|
||||
LOCK_PID="$(cat "$LOCK_FILE" 2>/dev/null || echo "")"
|
||||
if [[ -n "$LOCK_PID" ]] && kill -0 "$LOCK_PID" 2>/dev/null; then
|
||||
fail "다른 배포 진행 중 (PID: $LOCK_PID)"
|
||||
fi
|
||||
rm -f "$LOCK_FILE"
|
||||
fi
|
||||
echo $$ > "$LOCK_FILE"
|
||||
trap 'rm -f "$LOCK_FILE"; log "락 해제"' EXIT
|
||||
|
||||
log "======================================================"
|
||||
log " exAichatbot Agent 2.0 배포 시작"
|
||||
log " GIT_DIR : $GIT_DIR"
|
||||
log " WORK_TREE : $WORK_TREE"
|
||||
log " BRANCH : $BRANCH"
|
||||
log "======================================================"
|
||||
|
||||
[[ -d "$GIT_DIR" ]] || fail "GIT_DIR 없음: $GIT_DIR"
|
||||
mkdir -p "$WORK_TREE"
|
||||
|
||||
log "[Phase 1] git checkout -f $BRANCH"
|
||||
git --work-tree="$WORK_TREE" --git-dir="$GIT_DIR" checkout -f "$BRANCH"
|
||||
COMMIT="$(git --git-dir="$GIT_DIR" rev-parse --short HEAD)"
|
||||
log "체크아웃: $COMMIT"
|
||||
|
||||
chmod +x "$WORK_TREE/server-dev/"*.sh 2>/dev/null || true
|
||||
chmod +x "$WORK_TREE/chatbotApp-chatbot2.0-agent/build.sh" 2>/dev/null || true
|
||||
|
||||
log "[Phase 2] stop-all-server.sh"
|
||||
"$WORK_TREE/server-dev/stop-all-server.sh" --keep-caddy || true
|
||||
|
||||
log "[Phase 3] .env 준비"
|
||||
ENV_FILE="$WORK_TREE/exAiChatBot-chatbot2.0-agent/.env"
|
||||
if [[ ! -f "$ENV_FILE" ]]; then
|
||||
cp "$WORK_TREE/server-dev/env.exdev-server.template" "$ENV_FILE"
|
||||
log ".env 생성 (env.exdev-server.template)"
|
||||
fi
|
||||
|
||||
log "[Phase 4] start-all-server.sh (빌드 포함)"
|
||||
"$WORK_TREE/server-dev/start-all-server.sh"
|
||||
|
||||
log "======================================================"
|
||||
log " 배포 완료 — $COMMIT"
|
||||
log " UI: https://chatbot.exdev.co.kr/chatbot/app/"
|
||||
log "======================================================"
|
||||
Reference in New Issue
Block a user