solution/Jenkinsfile
zio 248d927a00 feat: GUARDiA Solutions Portal - React 19 + 15 solutions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 23:22:00 +09:00

58 lines
1.4 KiB
Groovy

pipeline {
agent any
environment {
DEPLOY_PATH = '/opt/solution/public'
BACKUP_PATH = '/opt/solution/public_backup'
HEALTH_URL = 'http://solution.zioinfo.co.kr'
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh 'npm ci'
sh 'npm run build'
}
}
stage('Test') {
steps {
sh 'npm test -- --watchAll=false --passWithNoTests || true'
}
}
stage('Deploy') {
when { branch 'main' }
steps {
sh "cp -r ${DEPLOY_PATH} ${BACKUP_PATH} 2>/dev/null || true"
sh "rsync -a --delete dist/ ${DEPLOY_PATH}/"
sh 'systemctl reload nginx'
}
}
stage('Smoke Test') {
when { branch 'main' }
steps {
sh "curl -sf ${HEALTH_URL} | grep -q 'GUARDiA' && echo '[PASS] 배포 성공' || (echo '[FAIL] smoke test 실패'; exit 1)"
}
}
}
post {
failure {
echo '배포 실패 — 백업으로 롤백'
sh "cp -r ${BACKUP_PATH}/ ${DEPLOY_PATH}/ 2>/dev/null || true"
sh 'systemctl reload nginx 2>/dev/null || true'
}
success {
echo '✓ solution.zioinfo.co.kr 배포 완료'
}
}
}