From d75c259350b4ab05294f132fa3f4056579c6ca7a Mon Sep 17 00:00:00 2001 From: bcjang Date: Wed, 27 Aug 2025 18:38:59 +0900 Subject: [PATCH] =?UTF-8?q?jenkins=20=ED=8C=A8=EC=B9=98=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile.live | 1 + Jenkinsfile.live.metadata | 76 +++++++++++++++++++++++++++++ Jenkinsfile.live.simple | 1 + Jenkinsfile.qa | 1 + Jenkinsfile.qa.metadata | 99 ++++++++++++++++++++++++++++++++++++++ Jenkinsfile.qa.simple | 1 + Jenkinsfile.stage | 1 + Jenkinsfile.stage.metadata | 99 ++++++++++++++++++++++++++++++++++++++ Jenkinsfile.stage.simple | 1 + 9 files changed, 280 insertions(+) create mode 100644 Jenkinsfile.live.metadata create mode 100644 Jenkinsfile.qa.metadata create mode 100644 Jenkinsfile.stage.metadata diff --git a/Jenkinsfile.live b/Jenkinsfile.live index aa2e6a1..53b9e16 100644 --- a/Jenkinsfile.live +++ b/Jenkinsfile.live @@ -17,6 +17,7 @@ pipeline { stage('Gradle Build') { steps { script { + sh 'cp /var/lib/jenkins/workspace/Trunk-Admintool-Dev-BackEnd/gradlew /var/lib/jenkins/workspace/Product-Admintool-Live-BackEnd-Full/gradlew' sh 'chmod +x gradlew' //gradle 권한 설정 sh './gradlew clean build -x test -Pprofile=live' //빌드 test는 하지않는다 } diff --git a/Jenkinsfile.live.metadata b/Jenkinsfile.live.metadata new file mode 100644 index 0000000..4378956 --- /dev/null +++ b/Jenkinsfile.live.metadata @@ -0,0 +1,76 @@ +pipeline { + agent any + + environment { + META_FOLDER = 'metadata/**' + REMOTE_META_FOLDER = 'admintool' + } + + stages { + stage('MetaData Checkout'){ + steps{ + checkout([$class: 'SubversionSCM', + additionalCredentials: [], + excludedCommitMessages: '', + excludedRegions: '', + excludedRevprop: '', + excludedUsers: '', + filterChangelog: false, + ignoreDirPropChanges: false, + includedRegions: '', + locations: [ + [ + cancelProcessOnExternalsFail: true, + credentialsId: 'jenkins-build', + depthOption: 'infinity', + ignoreExternalsOption: true, + local: 'metadata', + remote: 'svn://10.20.20.9/branches/Product/DataAssets/MS2/JSON@HEAD' + ] + ], + quietOperation: true, + workspaceUpdater: [$class: 'UpdateUpdater'] + ]) + } + } + stage('SSH Tunneling Start') { + steps { + script { + sh 'rm -rf ${WORKSPACE}/metadata/.svn' + sh 'rm -rf ${WORKSPACE}/metadata/QuestScript' + sh '/home/admintool/ssh-tunneling-live.sh start' + } + } + } + stage('Transfer MeataData'){ + steps{ + sshPublisher( + publishers: [ + sshPublisherDesc( + configName: 'live-backend', + transfers: [ + sshTransfer( + sourceFiles: "${META_FOLDER}", + remoteDirectory: "${REMOTE_META_FOLDER}", + execCommand: """ + echo 'metadata Transfer Complete' + """, + execTimeout: 120000 + ) + ], + usePromotionTimestamp: false, + verbose: true + ) + ] + ) + } + } + stage('SSH Tunneling Stop') { + steps { + script { + sh '/home/admintool/ssh-tunneling-live.sh stop; /home/admintool/ssh-tunneling-live.sh status' + } + } + } + } +} \ No newline at end of file diff --git a/Jenkinsfile.live.simple b/Jenkinsfile.live.simple index 78ae8f1..96dc064 100644 --- a/Jenkinsfile.live.simple +++ b/Jenkinsfile.live.simple @@ -17,6 +17,7 @@ pipeline { stage('Gradle Build') { steps { script { + sh 'cp /var/lib/jenkins/workspace/Trunk-Admintool-Dev-BackEnd/gradlew /var/lib/jenkins/workspace/Product-Admintool-Live-BackEnd/gradlew' sh 'chmod +x gradlew' //gradle 권한 설정 sh './gradlew clean build -x test -Pprofile=live' //빌드 test는 하지않는다 } diff --git a/Jenkinsfile.qa b/Jenkinsfile.qa index 493c648..c0d9c3d 100644 --- a/Jenkinsfile.qa +++ b/Jenkinsfile.qa @@ -17,6 +17,7 @@ pipeline { stage('Gradle Build') { steps { script { + sh 'cp /var/lib/jenkins/workspace/Trunk-Admintool-Dev-BackEnd/gradlew /var/lib/jenkins/workspace/Stable-Admintool-QA-BackEnd-Full/gradlew' sh 'chmod +x gradlew' //gradle 권한 설정 sh './gradlew clean build -x test -Pprofile=qa' //빌드 test는 하지않는다 } diff --git a/Jenkinsfile.qa.metadata b/Jenkinsfile.qa.metadata new file mode 100644 index 0000000..20d51c3 --- /dev/null +++ b/Jenkinsfile.qa.metadata @@ -0,0 +1,99 @@ +pipeline { + agent any + + environment { + META_FOLDER = 'metadata/**' + REMOTE_META_FOLDER = 'admintool' + DOCKER_NAME = 'admintool-back-qa' + } + + stages { + stage('MetaData Checkout'){ + steps{ + checkout([$class: 'SubversionSCM', + additionalCredentials: [], + excludedCommitMessages: '', + excludedRegions: '', + excludedRevprop: '', + excludedUsers: '', + filterChangelog: false, + ignoreDirPropChanges: false, + includedRegions: '', + locations: [ + [ + cancelProcessOnExternalsFail: true, + credentialsId: 'jenkins-build', + depthOption: 'infinity', + ignoreExternalsOption: true, + local: 'metadata', + remote: 'svn://10.20.20.9/branches/Stable/DataAssets/MS2/JSON@HEAD' + ] + ], + quietOperation: true, + workspaceUpdater: [$class: 'UpdateUpdater'] + ]) + } + } + stage('SSH Tunneling Start') { + steps { + script { + sh 'rm -rf ${WORKSPACE}/metadata/.svn' + sh 'rm -rf ${WORKSPACE}/metadata/QuestScript' + sh '/home/admintool/ssh-tunneling-qa.sh start' + } + } + } + stage('Transfer MeataData'){ + steps{ + sshPublisher( + publishers: [ + sshPublisherDesc( + configName: 'qa-backend', + transfers: [ + sshTransfer( + sourceFiles: "${META_FOLDER}", + remoteDirectory: "${REMOTE_META_FOLDER}", + execCommand: """ + echo 'metadata Transfer Complete' + """, + execTimeout: 120000 + ) + ], + usePromotionTimestamp: false, + verbose: true + ) + ] + ) + } + } + stage('Docker Container Restart'){ + steps{ + // aws command + sshPublisher( + publishers: [ + sshPublisherDesc( + configName: 'qa-backend', + transfers: [ + sshTransfer( + execCommand: """ + docker restart ${DOCKER_NAME} + """, + execTimeout: 120000 + ) + ], + usePromotionTimestamp: false, + verbose: true + ) + ] + ) + } + } + stage('SSH Tunneling Stop') { + steps { + script { + sh '/home/admintool/ssh-tunneling-qa.sh stop; /home/admintool/ssh-tunneling-qa.sh status' + } + } + } + } +} \ No newline at end of file diff --git a/Jenkinsfile.qa.simple b/Jenkinsfile.qa.simple index b167a5c..de5ba74 100644 --- a/Jenkinsfile.qa.simple +++ b/Jenkinsfile.qa.simple @@ -17,6 +17,7 @@ pipeline { stage('Gradle Build') { steps { script { + sh 'cp /var/lib/jenkins/workspace/Trunk-Admintool-Dev-BackEnd/gradlew /var/lib/jenkins/workspace/Stable-Admintool-QA-BackEnd/gradlew' sh 'chmod +x gradlew' //gradle 권한 설정 sh './gradlew clean build -x test -Pprofile=qa' //빌드 test는 하지않는다 } diff --git a/Jenkinsfile.stage b/Jenkinsfile.stage index 5a3d5f1..2c85058 100644 --- a/Jenkinsfile.stage +++ b/Jenkinsfile.stage @@ -17,6 +17,7 @@ pipeline { stage('Gradle Build') { steps { script { + sh 'cp /var/lib/jenkins/workspace/Trunk-Admintool-Dev-BackEnd/gradlew /var/lib/jenkins/workspace/Product-Admintool-Stage-BackEnd-Full/gradlew' sh 'chmod +x gradlew' //gradle 권한 설정 sh './gradlew clean build -x test -Pprofile=stage' //빌드 test는 하지않는다 } diff --git a/Jenkinsfile.stage.metadata b/Jenkinsfile.stage.metadata new file mode 100644 index 0000000..809f17d --- /dev/null +++ b/Jenkinsfile.stage.metadata @@ -0,0 +1,99 @@ +pipeline { + agent any + + environment { + META_FOLDER = 'metadata/**' + REMOTE_META_FOLDER = 'admintool' + DOCKER_NAME = 'admintool-back-stage' + } + + stages { + stage('MetaData Checkout'){ + steps{ + checkout([$class: 'SubversionSCM', + additionalCredentials: [], + excludedCommitMessages: '', + excludedRegions: '', + excludedRevprop: '', + excludedUsers: '', + filterChangelog: false, + ignoreDirPropChanges: false, + includedRegions: '', + locations: [ + [ + cancelProcessOnExternalsFail: true, + credentialsId: 'jenkins-build', + depthOption: 'infinity', + ignoreExternalsOption: true, + local: 'metadata', + remote: 'svn://10.20.20.9/branches/Product/DataAssets/MS2/JSON@HEAD' + ] + ], + quietOperation: true, + workspaceUpdater: [$class: 'UpdateUpdater'] + ]) + } + } + stage('SSH Tunneling Start') { + steps { + script { + sh 'rm -rf ${WORKSPACE}/metadata/.svn' + sh 'rm -rf ${WORKSPACE}/metadata/QuestScript' + sh '/home/admintool/ssh-tunneling-stage.sh start' + } + } + } + stage('Transfer MeataData'){ + steps{ + sshPublisher( + publishers: [ + sshPublisherDesc( + configName: 'stage-backend', + transfers: [ + sshTransfer( + sourceFiles: "${META_FOLDER}", + remoteDirectory: "${REMOTE_META_FOLDER}", + execCommand: """ + echo 'metadata Transfer Complete' + """, + execTimeout: 120000 + ) + ], + usePromotionTimestamp: false, + verbose: true + ) + ] + ) + } + } + stage('Docker Container Restart'){ + steps{ + // aws command + sshPublisher( + publishers: [ + sshPublisherDesc( + configName: 'stage-backend', + transfers: [ + sshTransfer( + execCommand: """ + docker restart ${DOCKER_NAME} + """, + execTimeout: 120000 + ) + ], + usePromotionTimestamp: false, + verbose: true + ) + ] + ) + } + } + stage('SSH Tunneling Stop') { + steps { + script { + sh '/home/admintool/ssh-tunneling-stage.sh stop; /home/admintool/ssh-tunneling-stage.sh status' + } + } + } + } +} \ No newline at end of file diff --git a/Jenkinsfile.stage.simple b/Jenkinsfile.stage.simple index dedadbd..5d84f91 100644 --- a/Jenkinsfile.stage.simple +++ b/Jenkinsfile.stage.simple @@ -17,6 +17,7 @@ pipeline { stage('Gradle Build') { steps { script { + sh 'cp /var/lib/jenkins/workspace/Trunk-Admintool-Dev-BackEnd/gradlew /var/lib/jenkins/workspace/Product-Admintool-Stage-BackEnd/gradlew' sh 'chmod +x gradlew' //gradle 권한 설정 sh './gradlew clean build -x test -Pprofile=stage' //빌드 test는 하지않는다 }