def TARGET_BUILD_CONTAINER = '' def TARGET_RUN_CONTAINER = '' def CONTAINER_SRC_PATH = '/src' pipeline { agent any stages { stage('Check Branch & Setup ENV') { steps { script { def branchName = env.BRANCH_NAME echo "Current Git Branch : ${branchName}" if (branchName == 'develop') { TARGET_BUILD_CONTAINER = 'spms-back-build-debug' TARGET_RUN_CONTAINER = 'spms-run-debug' echo "[DEV Mode] SET DEBUG Container" } else if (branchName == 'main') { TARGET_BUILD_CONTAINER = 'spms-back-build-release' TARGET_RUN_CONTAINER = 'spms-run-release' echo ">>> [PROD Mode] SET Release Container" } else { error "This branch(${branchName}) can't set container (USE develop or main branch)" } } } } stage('Checkout Source') { steps { cleanWs() checkout scm echo "Git Checkout Complete" } } stage('Copy to Container') { steps { script { echo "Target Container: ${TARGET_BUILD_CONTAINER}" def containerId = sh(script: "docker ps -aqf 'name=${TARGET_BUILD_CONTAINER}'", returnStdout: true).trim() if (containerId) { sh "docker cp ${WORKSPACE}/. ${TARGET_BUILD_CONTAINER}:${CONTAINER_SRC_PATH}" echo "Source code copied to ${TARGET_BUILD_CONTAINER}" } else { error "Build container ${TARGET_BUILD_CONTAINER} not found!" } } } } stage('Build & Deploy') { steps { script { echo "Building..." sh "docker start -a ${TARGET_BUILD_CONTAINER}" echo "Restarting..." sh "docker restart ${TARGET_RUN_CONTAINER}" } } } } }