mirror of
https://github.com/cna-bootcamp/phonebill.git
synced 2025-12-06 08:06:24 +00:00
Jenkins 파이프라인 최적화: SonarQube 분석을 services.each 루프로 리팩토링 및 Docker 빌드 timeout 설정 추가
This commit is contained in:
parent
e945db9dfe
commit
0e9c206ae1
82
deployment/cicd/Jenkinsfile
vendored
82
deployment/cicd/Jenkinsfile
vendored
@ -58,43 +58,19 @@ podTemplate(
|
|||||||
sh """
|
sh """
|
||||||
chmod +x gradlew
|
chmod +x gradlew
|
||||||
./gradlew build -x test
|
./gradlew build -x test
|
||||||
|
|
||||||
# 각 서비스별 테스트 및 분석
|
|
||||||
./gradlew :api-gateway:test :api-gateway:jacocoTestReport :api-gateway:sonar \\
|
|
||||||
-Dsonar.projectKey=phonebill-api-gateway-${environment} \\
|
|
||||||
-Dsonar.projectName=phonebill-api-gateway \\
|
|
||||||
-Dsonar.java.binaries=build/classes/java/main \\
|
|
||||||
-Dsonar.coverage.jacoco.xmlReportPaths=build/reports/jacoco/test/jacocoTestReport.xml \\
|
|
||||||
-Dsonar.exclusions=**/config/**,**/entity/**,**/dto/**,**/*Application.class,**/exception/**
|
|
||||||
|
|
||||||
./gradlew :user-service:test :user-service:jacocoTestReport :user-service:sonar \\
|
|
||||||
-Dsonar.projectKey=phonebill-user-service-${environment} \\
|
|
||||||
-Dsonar.projectName=phonebill-user-service \\
|
|
||||||
-Dsonar.java.binaries=build/classes/java/main \\
|
|
||||||
-Dsonar.coverage.jacoco.xmlReportPaths=build/reports/jacoco/test/jacocoTestReport.xml \\
|
|
||||||
-Dsonar.exclusions=**/config/**,**/entity/**,**/dto/**,**/*Application.class,**/exception/**
|
|
||||||
|
|
||||||
./gradlew :bill-service:test :bill-service:jacocoTestReport :bill-service:sonar \\
|
|
||||||
-Dsonar.projectKey=phonebill-bill-service-${environment} \\
|
|
||||||
-Dsonar.projectName=phonebill-bill-service \\
|
|
||||||
-Dsonar.java.binaries=build/classes/java/main \\
|
|
||||||
-Dsonar.coverage.jacoco.xmlReportPaths=build/reports/jacoco/test/jacocoTestReport.xml \\
|
|
||||||
-Dsonar.exclusions=**/config/**,**/entity/**,**/dto/**,**/*Application.class,**/exception/**
|
|
||||||
|
|
||||||
./gradlew :product-service:test :product-service:jacocoTestReport :product-service:sonar \\
|
|
||||||
-Dsonar.projectKey=phonebill-product-service-${environment} \\
|
|
||||||
-Dsonar.projectName=phonebill-product-service \\
|
|
||||||
-Dsonar.java.binaries=build/classes/java/main \\
|
|
||||||
-Dsonar.coverage.jacoco.xmlReportPaths=build/reports/jacoco/test/jacocoTestReport.xml \\
|
|
||||||
-Dsonar.exclusions=**/config/**,**/entity/**,**/dto/**,**/*Application.class,**/exception/**
|
|
||||||
|
|
||||||
./gradlew :kos-mock:test :kos-mock:jacocoTestReport :kos-mock:sonar \\
|
|
||||||
-Dsonar.projectKey=phonebill-kos-mock-${environment} \\
|
|
||||||
-Dsonar.projectName=phonebill-kos-mock \\
|
|
||||||
-Dsonar.java.binaries=build/classes/java/main \\
|
|
||||||
-Dsonar.coverage.jacoco.xmlReportPaths=build/reports/jacoco/test/jacocoTestReport.xml \\
|
|
||||||
-Dsonar.exclusions=**/config/**,**/entity/**,**/dto/**,**/*Application.class,**/exception/**
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
// 각 서비스별 테스트 및 SonarQube 분석
|
||||||
|
services.each { service ->
|
||||||
|
sh """
|
||||||
|
./gradlew :${service}:test :${service}:jacocoTestReport :${service}:sonar \\
|
||||||
|
-Dsonar.projectKey=phonebill-${service}-${environment} \\
|
||||||
|
-Dsonar.projectName=phonebill-${service} \\
|
||||||
|
-Dsonar.java.binaries=build/classes/java/main \\
|
||||||
|
-Dsonar.coverage.jacoco.xmlReportPaths=build/reports/jacoco/test/jacocoTestReport.xml \\
|
||||||
|
-Dsonar.exclusions=**/config/**,**/entity/**,**/dto/**,**/*Application.class,**/exception/**
|
||||||
|
"""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,24 +85,26 @@ podTemplate(
|
|||||||
}
|
}
|
||||||
|
|
||||||
stage('Build & Push Images') {
|
stage('Build & Push Images') {
|
||||||
container('podman') {
|
timeout(time: 30, unit: 'MINUTES') {
|
||||||
withCredentials([usernamePassword(
|
container('podman') {
|
||||||
credentialsId: 'acr-credentials',
|
withCredentials([usernamePassword(
|
||||||
usernameVariable: 'USERNAME',
|
credentialsId: 'acr-credentials',
|
||||||
passwordVariable: 'PASSWORD'
|
usernameVariable: 'USERNAME',
|
||||||
)]) {
|
passwordVariable: 'PASSWORD'
|
||||||
sh "podman login acrdigitalgarage01.azurecr.io --username \$USERNAME --password \$PASSWORD"
|
)]) {
|
||||||
|
sh "podman login acrdigitalgarage01.azurecr.io --username \$USERNAME --password \$PASSWORD"
|
||||||
|
|
||||||
services.each { service ->
|
services.each { service ->
|
||||||
sh """
|
sh """
|
||||||
podman build \\
|
podman build \\
|
||||||
--build-arg BUILD_LIB_DIR="${service}/build/libs" \\
|
--build-arg BUILD_LIB_DIR="${service}/build/libs" \\
|
||||||
--build-arg ARTIFACTORY_FILE="${service}.jar" \\
|
--build-arg ARTIFACTORY_FILE="${service}.jar" \\
|
||||||
-f deployment/container/Dockerfile-backend \\
|
-f deployment/container/Dockerfile-backend \\
|
||||||
-t acrdigitalgarage01.azurecr.io/phonebill/${service}:${environment}-${imageTag} .
|
-t acrdigitalgarage01.azurecr.io/phonebill/${service}:${environment}-${imageTag} .
|
||||||
|
|
||||||
podman push acrdigitalgarage01.azurecr.io/phonebill/${service}:${environment}-${imageTag}
|
podman push acrdigitalgarage01.azurecr.io/phonebill/${service}:${environment}-${imageTag}
|
||||||
"""
|
"""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user