Deploy: exdev sync 2026-08-11 15:48:53

This commit is contained in:
Macbook
2026-08-11 15:48:53 +09:00
parent 0174f1bd27
commit 4301ebe1b8
5 changed files with 101 additions and 15 deletions
+44 -3
View File
@@ -29,7 +29,8 @@ if [[ -f "$LOCK_FILE" ]]; then
rm -f "$LOCK_FILE"
fi
echo $$ > "$LOCK_FILE"
trap 'rm -f "$LOCK_FILE"; log "락 해제"' EXIT
DEPLOY_OK=false
trap 'rm -f "$LOCK_FILE"; if ! $DEPLOY_OK; then log "[ERROR] 배포 실패"; fi; log "락 해제"' EXIT
for arg in "$@"; do
case "$arg" in
@@ -76,8 +77,42 @@ sync_worktree_submodules() {
log "[WARN] submodule 소스 부족 (${ready}/4) — 공식 GitHub fetch 안 함. 로컬 rsync 필요"
}
log "[Phase 1] stop-all-server.sh"
"$WORK_TREE/server-dev/stop-all-server.sh" --keep-caddy || true
resolve_java17_home() {
local home="" candidate
for candidate in \
"/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home" \
"/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home"; do
if [[ -x "${candidate}/bin/java" ]]; then
home="${candidate}"
break
fi
done
if [[ -z "${home}" ]] && /usr/libexec/java_home -v 17 >/dev/null 2>&1; then
home="$(/usr/libexec/java_home -v 17)"
fi
[[ -n "${home}" ]] || fail "Java 17 필요 — brew install openjdk@17"
echo "${home}"
}
# 서비스 중지 전에 Java 컴파일만 검증 — 실패 시 가동 중인 스택을 유지한다.
preflight_java_compile() {
local java_home dir
java_home="$(resolve_java17_home)"
log "[Phase 0] Java 사전 컴파일 검증 (Java 17)"
for dir in \
"${WORK_TREE}/kakaoChatbotSkill-chatbot2.0-agent" \
"${WORK_TREE}/chatbotApi-chatbot2.0-agent"; do
[[ -x "${dir}/gradlew" ]] || fail "gradlew 없음: ${dir}"
log " compileJava: $(basename "${dir}")"
if ! (
cd "${dir}"
./gradlew -Dorg.gradle.java.home="${java_home}" compileJava --quiet
); then
fail "사전 컴파일 실패: $(basename "${dir}") — 기존 서비스는 그대로 유지됨"
fi
done
log " ✅ Java 사전 컴파일 OK"
}
if ! $START_ONLY; then
log "[Phase 2] checkout (Gitea work tree) — 공식 GitHub 미사용"
@@ -86,6 +121,11 @@ if ! $START_ONLY; then
sync_worktree_submodules "$WORK_TREE"
fi
preflight_java_compile
log "[Phase 1] 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
@@ -101,6 +141,7 @@ fi
"$WORK_TREE/server-dev/start-all-server.sh" "${START_ARGS[@]}"
COMMIT="$(git --git-dir="$GIT_DIR" rev-parse --short HEAD 2>/dev/null || echo unknown)"
DEPLOY_OK=true
log "======================================================"
log " 배포 완료 — $COMMIT"
log " UI: https://chatbot.exdev.co.kr/chatbot/ai/"