본문 바로가기

DevOps/Sonarqube

Sonarqube - Jenkins 연동 - 2. Sonarqube / Jenkins 세팅

소나큐브에서 로그인을 해줍니다.

초기 설정은 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를 만족해야만 배포를 더 진행할 수 있습니다.

 

 

룰셋 및 퀄리티 기준은 사이트마다 다르기 때문에 직접 선정하시면 되겠습니다.

'DevOps > Sonarqube' 카테고리의 다른 글

Sonarqube - Jenkins 연동 - 1. Sonarqube 설치  (0) 2021.01.08