b8c9f2f01b
Phase 1 (now): clone main → /home/kyu/trading-prod, run `docker compose config` with project name 'trading-prod' (separate from running trading-ai stack). No containers are created or touched. Phase 2 (later): uncomment Deploy stage to actually run `docker compose up -d`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
72 lines
2.2 KiB
Groovy
72 lines
2.2 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
options {
|
|
timestamps()
|
|
buildDiscarder(logRotator(numToKeepStr: '20'))
|
|
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 {
|
|
stage('Checkout info') {
|
|
steps {
|
|
script {
|
|
echo "Branch: ${env.BRANCH_NAME ?: 'n/a'}"
|
|
echo "Commit: ${env.GIT_COMMIT ?: 'n/a'}"
|
|
echo "Build : #${env.BUILD_NUMBER} on ${env.NODE_NAME}"
|
|
}
|
|
sh 'git log -1 --pretty=fuller || true'
|
|
}
|
|
}
|
|
|
|
stage('Sync to PROD_DIR') {
|
|
steps {
|
|
sh '''
|
|
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 (no deploy)') {
|
|
steps {
|
|
sh '''
|
|
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 "Phase 1 SUCCESS — PROD_DIR synced & validated. No containers touched." }
|
|
failure { echo "FAILED — check logs" }
|
|
}
|
|
}
|