diff --git a/deployment/cicd/Jenkinsfile b/deployment/cicd/Jenkinsfile index ae1b2d7..b28b239 100644 --- a/deployment/cicd/Jenkinsfile +++ b/deployment/cicd/Jenkinsfile @@ -71,6 +71,7 @@ podTemplate( def props def imageTag = getImageTag() def environment = params.ENVIRONMENT ?: 'dev' + def skipSonarQube = params.SKIP_SONARQUBE ?: false def services = ['api-gateway', 'user-service', 'bill-service', 'product-service', 'kos-mock'] try { @@ -91,14 +92,21 @@ podTemplate( } } - stage('Build & SonarQube Analysis') { + stage('Build') { + container('gradle') { + sh """ + chmod +x gradlew + ./gradlew build -x test + """ + } + } + + stage('SonarQube Analysis & Quality Gate') { + when { + not { skipSonarQube } + } container('gradle') { withSonarQubeEnv('SonarQube') { - sh """ - chmod +x gradlew - ./gradlew build -x test - """ - // 각 서비스별 테스트 및 SonarQube 분석 services.each { service -> sh """ @@ -110,15 +118,14 @@ podTemplate( -Dsonar.exclusions=**/config/**,**/entity/**,**/dto/**,**/*Application.class,**/exception/** """ } - } - } - } - - stage('Quality Gate') { - timeout(time: 10, unit: 'MINUTES') { - def qg = waitForQualityGate() - if (qg.status != 'OK') { - error "Pipeline aborted due to quality gate failure: ${qg.status}" + + // Quality Gate 확인 + timeout(time: 10, unit: 'MINUTES') { + def qg = waitForQualityGate() + if (qg.status != 'OK') { + error "Pipeline aborted due to quality gate failure: ${qg.status}" + } + } } } } diff --git a/kos-mock/data/kos_mock.mv.db b/kos-mock/data/kos_mock.mv.db index 7a9a5cc..d4c1995 100644 Binary files a/kos-mock/data/kos_mock.mv.db and b/kos-mock/data/kos_mock.mv.db differ