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 확인"
        }
    }
}
