46 lines
1.3 KiB
Groovy
46 lines
1.3 KiB
Groovy
pipeline {
|
|
agent { label 'mac-mini' }
|
|
|
|
environment {
|
|
NAS = "happyhome@jisangs.synology.me"
|
|
NAS_PORT = "21022"
|
|
NAS_TMP = "/volume1/docker/service/jisangs/chocomae-stage/tmp"
|
|
ARCHIVE = "chocomae-build-${BUILD_NUMBER}.tar.gz"
|
|
}
|
|
|
|
stages {
|
|
stage('Package') {
|
|
steps {
|
|
sh 'chmod +x deploy/stage-jenkins/*.sh && ./deploy/stage-jenkins/package.sh'
|
|
}
|
|
}
|
|
stage('Upload') {
|
|
steps {
|
|
sh '''
|
|
ssh -p ${NAS_PORT} ${NAS} "mkdir -p ${NAS_TMP}"
|
|
scp -O -P ${NAS_PORT} ${ARCHIVE} deploy/stage-jenkins/remote_deploy.sh ${NAS}:${NAS_TMP}/
|
|
'''
|
|
}
|
|
}
|
|
stage('Deploy') {
|
|
steps {
|
|
sh '''
|
|
ssh -p ${NAS_PORT} ${NAS} \
|
|
"bash ${NAS_TMP}/remote_deploy.sh ${ARCHIVE}"
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
always {
|
|
sh 'rm -fv ${ARCHIVE} || true'
|
|
}
|
|
success {
|
|
echo "✓ chocomae-stage 배포 성공 (build #${BUILD_NUMBER})"
|
|
}
|
|
failure {
|
|
echo "✗ 배포 실패 — Deploy stage였다면 NAS에서 자동 롤백됨. Console Output 확인"
|
|
}
|
|
}
|
|
} |