diff --git a/Jenkinsfile b/Jenkinsfile index 6eb240d..0648c5b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,7 +4,14 @@ pipeline { options { timestamps() buildDiscarder(logRotator(numToKeepStr: '20')) - timeout(time: 10, unit: 'MINUTES') + timeout(time: 15, unit: 'MINUTES') + } + + environment { + PROD_DIR = '/home/kyu/trading-prod' + // Phase 1: project name 분리. running stack(trading-ai)과 충돌 방지. + COMPOSE_PROJECT_NAME = 'trading-prod' + HOME = '/home/kyu' } stages { @@ -19,39 +26,46 @@ pipeline { } } - stage('Repo layout') { + stage('Sync to PROD_DIR') { steps { sh ''' - echo "=== top-level ===" - ls -la | head -30 - echo - echo "=== compose files ===" - ls -la docker-compose*.yml 2>/dev/null || true + set -e + echo "Syncing latest main to ${PROD_DIR}" + cd "${PROD_DIR}" + git fetch --all --prune + git reset --hard origin/main + git clean -fdx -e .env -e qdrant-config/config.yaml + echo "--- after sync ---" + git log -1 --oneline ''' } } - stage('Validate compose') { + stage('Validate compose (no deploy)') { steps { sh ''' - if command -v docker >/dev/null 2>&1; then - echo "docker version:" - docker --version - echo - echo "=== compose config (syntax only, no apply) ===" - docker compose -f docker-compose.yml config --quiet \ - && echo "OK: docker-compose.yml is valid" \ - || echo "WARN: compose validation failed (non-fatal for now)" - else - echo "docker not available in this build environment, skipping" - fi + set -e + cd "${PROD_DIR}" + echo "=== docker compose config (project: ${COMPOSE_PROJECT_NAME}) ===" + docker compose config --quiet + echo "OK: compose config valid" + echo + echo "=== compose ps (project ${COMPOSE_PROJECT_NAME} containers, if any) ===" + docker compose ps || true ''' } } + + // Phase 2 (나중 활성화): 실제 배포 stage + // stage('Deploy') { + // steps { + // sh 'cd "${PROD_DIR}" && docker compose up -d --remove-orphans' + // } + // } } post { - success { echo "SUCCESS — no deployment performed (by design)" } + success { echo "Phase 1 SUCCESS — PROD_DIR synced & validated. No containers touched." } failure { echo "FAILED — check logs" } } }