Files

48 lines
1.3 KiB
Groovy

pipeline {
agent { label 'mac-mini' }
environment {
SSH_TARGET = "ubuntu@chocomae.jinaju.com"
SSH_PORT = "22"
REMOTE_TMP = "/tmp/chocomae-deploy"
DEPLOY_DIR = "deploy/prod-jenkins"
ARCHIVE = "chocomae-build-${BUILD_NUMBER}.tar.gz"
}
stages {
stage('Package') {
steps {
sh 'chmod +x ${DEPLOY_DIR}/*.sh && ./${DEPLOY_DIR}/package.sh'
}
}
stage('Upload') {
steps {
sh '''
ssh -p ${SSH_PORT} ${SSH_TARGET} "mkdir -p ${REMOTE_TMP}"
scp -O -P ${SSH_PORT} ${ARCHIVE} ${DEPLOY_DIR}/remote_deploy.sh ${SSH_TARGET}:${REMOTE_TMP}/
'''
}
}
stage('Deploy') {
steps {
sh '''
ssh -p ${SSH_PORT} ${SSH_TARGET} \
"bash ${REMOTE_TMP}/remote_deploy.sh ${ARCHIVE}"
'''
}
}
}
post {
always {
sh 'rm -fv ${ARCHIVE} || true'
}
success {
echo "✓ chocomae-production 배포 성공 (build #${BUILD_NUMBER})"
}
failure {
echo "✗ 배포 실패 — Deploy stage였다면 원격에서 자동 롤백됨. Console Output 확인"
}
}
}