76 lines
2.6 KiB
Bash
Executable File
76 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# exdev 서버 — backend Docker가 Jenkins 빌드를 트리거하도록 .env 설정
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
ENV_FILE="${ENV_FILE:-$REPO_ROOT/.env}"
|
|
|
|
JENKINS_URL="${GC_DESKTOP_JENKINS_URL:-http://127.0.0.1:8090}"
|
|
JENKINS_JOB="${GC_DESKTOP_JENKINS_JOB:-goldenChart-Desktop-Pipeline}"
|
|
JENKINS_TRIGGER_TOKEN="${GC_DESKTOP_JENKINS_TRIGGER_TOKEN:-goldenchart-desktop-build}"
|
|
|
|
log() { echo "[configure-jenkins] $*"; }
|
|
|
|
upsert_env() {
|
|
local key="$1" val="$2"
|
|
if [[ -f "$ENV_FILE" ]] && grep -q "^${key}=" "$ENV_FILE" 2>/dev/null; then
|
|
if [[ "$(uname)" == "Darwin" ]]; then
|
|
sed -i '' "s|^${key}=.*|${key}=${val}|" "$ENV_FILE"
|
|
else
|
|
sed -i "s|^${key}=.*|${key}=${val}|" "$ENV_FILE"
|
|
fi
|
|
else
|
|
echo "${key}=${val}" >> "$ENV_FILE"
|
|
fi
|
|
}
|
|
|
|
log "GoldenChart backend → Jenkins 연동 설정"
|
|
log "env file: $ENV_FILE"
|
|
|
|
if [[ -z "${GC_DESKTOP_JENKINS_USER:-}" ]]; then
|
|
read -r -p "Jenkins 사용자명 (예: aidev): " GC_DESKTOP_JENKINS_USER
|
|
fi
|
|
if [[ -z "${GC_DESKTOP_JENKINS_TOKEN:-}" ]]; then
|
|
echo ""
|
|
echo "Jenkins API Token 생성:"
|
|
echo " 1) ${JENKINS_URL} → 로그인"
|
|
echo " 2) 사용자 이름 클릭 → Configure → API Token → Add new Token → Generate"
|
|
echo ""
|
|
read -r -s -p "생성한 API Token: " GC_DESKTOP_JENKINS_TOKEN
|
|
echo ""
|
|
fi
|
|
|
|
if [[ -z "$GC_DESKTOP_JENKINS_USER" || -z "$GC_DESKTOP_JENKINS_TOKEN" ]]; then
|
|
echo "ERROR: USER/TOKEN이 필요합니다." >&2
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$(dirname "$ENV_FILE")"
|
|
touch "$ENV_FILE"
|
|
|
|
upsert_env "GC_DESKTOP_JENKINS_ENABLED" "true"
|
|
upsert_env "GC_DESKTOP_JENKINS_URL" "http://host.docker.internal:8090"
|
|
upsert_env "GC_DESKTOP_JENKINS_JOB" "$JENKINS_JOB"
|
|
upsert_env "GC_DESKTOP_JENKINS_USER" "$GC_DESKTOP_JENKINS_USER"
|
|
upsert_env "GC_DESKTOP_JENKINS_TOKEN" "$GC_DESKTOP_JENKINS_TOKEN"
|
|
upsert_env "GC_DESKTOP_JENKINS_TRIGGER_TOKEN" "$JENKINS_TRIGGER_TOKEN"
|
|
|
|
log "Job authToken 동기화…"
|
|
GC_DESKTOP_JENKINS_TRIGGER_TOKEN="$JENKINS_TRIGGER_TOKEN" \
|
|
"$SCRIPT_DIR/server-install-desktop-jenkins.sh"
|
|
|
|
log "트리거 검증…"
|
|
export GC_DESKTOP_JENKINS_URL="$JENKINS_URL"
|
|
export GC_DESKTOP_JENKINS_USER GC_DESKTOP_JENKINS_TOKEN GC_DESKTOP_JENKINS_TRIGGER_TOKEN
|
|
DRY_RUN=1 "$SCRIPT_DIR/verify-desktop-jenkins-trigger.sh"
|
|
|
|
if command -v docker >/dev/null 2>&1 && [[ -f "$REPO_ROOT/docker-compose.yml" ]]; then
|
|
log "backend 컨테이너 재시작…"
|
|
(cd "$REPO_ROOT" && docker compose up -d backend)
|
|
sleep 3
|
|
log "완료. 웹 UI에서 「앱 빌드」를 다시 시도하세요."
|
|
else
|
|
log "완료. docker compose up -d backend 로 backend를 재시작하세요."
|
|
fi
|