DevOps/Sonarqube
Sonarqube - Jenkins 연동 - 2. Sonarqube / Jenkins 세팅
Camouflage129
2021. 1. 8. 12:56
소나큐브에서 로그인을 해줍니다.
초기 설정은 admin/admin 입니다.
로그인 후 Administration 메뉴에서 아래 메뉴를 찾아 Webhooks를 들어갑니다.
Create를 해주시고 아래와 같이 입력해주세요
이렇게 하면 소나큐브에서 세팅은 끝납니다.
젠킨스로 들어가서 아래 플러그인을 설치해줍니다.
그 후, 시스템 설정에서 Server URL에 소나큐브 URL을 입력해주시면 끝납니다.
Spring 공화국 답게 Spring 기준으로 파이프라인을 보여드리면 아래와 같습니다.
stage('Sonarqube Analysis') {
when {
expression {
return env.gitcloneResult ==~ /(?i)(Y|YES|T|TRUE|ON|RUN)/
}
}
steps {
script {
try {
withSonarQubeEnv('sonar') {
sh 'mvn clean package -DskipTests -Djib.container.environment=SPRING_PROFILES_ACTIVE=dev sonar:sonar'
}
env.sonarResult = true
}
catch(Exception e) {
print(e)
currentBuild.result = 'FAILURE'
}
}
}
}
stage('Quality Gate') {
when {
expression {
return env.sonarResult ==~ /(?i)(Y|YES|T|TRUE|ON|RUN)/
}
}
steps {
script {
try {
timeout(time: 1, unit: 'HOURS') {
def qg = waitForQualityGate()
if (qg.status != 'OK') {
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
env.qualityGateResult = true
}
catch(Exception e) {
print(e)
currentBuild.result = 'FAILURE'
}
}
}
}
이와 같이 설정하면 아래처럼 소나큐브 룰셋의 Quality를 만족해야만 배포를 더 진행할 수 있습니다.
룰셋 및 퀄리티 기준은 사이트마다 다르기 때문에 직접 선정하시면 되겠습니다.