이 문서는 SonarQube Branch 및 Pull Request 분석을 Jenkins와 Bitbucket을 이용하여 설정하는 가이드를 제공하기 위해 작성되었다. 



SonarQube Extension 설치

 1. Jenkins에서 SonarQube Scanner 플러그인( version 2.11 or later) 설치

 Jenkins 관리 → Plugins → Available plugins → SonarQube Scanner for Jenkins 설치


 2. Credential 추가

 Jenkins 관리 →Credentials → Store scoped to Jenkins에서 System 클릭 


System에서 Global Credentials 클릭 → 우측 상단 +Add Credentials 클릭


Credential 정보 입력


3. SonarQube servers 설정

Jenkins 관리 → System → SonarQube servers → Environment variables 체크 → Add Sonarqube 클릭 

**Environment variables 체크 시, Job administrator가 SonarQube 서버 구성을 빌드의 환경변수로 주입할 수 있다.


정보 입력

저장


Bitbucket Branch Source 플러그인 설치 및 설정

(Developer버전 이상에서 다중 브랜치 파이프라인 잡을 분석하기 위해 필요. Bitbucket 서버,클라우드, GitHub, GitLab에서 설치 및 설정 가능)


 [Bitbucket 서버]

 1. Bitbucket Branch Source 플러그인(version 2.7 or later) 설치

 - Jenkins 관리 → Plugins → Available plugins → Bitbucket Branch Source 플러그인 설치

2. Credential 추가

 Jenkins 관리 →Security-Credentials → Store scoped to Jenkins에서 System 클릭 


System에서 Global Credentials 클릭 → 우측 상단 +Add Credentials 클릭


Credential 정보 입력


 3. Bitbucket Branch Source 플러그인 설정

 - Jenkins 관리 → System → Bitbucket Endpoints → Add 클릭 후 Bitbucket Server 선택

정보 입력 후 저장

SonarQube에 Bitbucket 저장소 import하여 프로젝트 생성 및 설정

Project → From Bitbucket Server → repository 선택 → 처음 선택 시 Bitbucket 정보 입력


With Jenkins 선택


Sonarqube가 제공하는 구성 단계별로 설정. 

Jenkins에서 Multibranch Pipeline Job 생성(Bitbucket 저장소의 모든 브랜치와 PR 분석하기 위함)

 1.  Multibranch Pipeline Job 프로젝트 생성
Dashboard 좌측 →  +새로운 item → item이름 입력 → pipeline → ok 


2. Configuration 설정

Configuration - Branch Sources 에서 Add source 드롭 메뉴 클릭 후 Bitbucket 선택


Bitbucket 정보 입력

Build Configuration

저장


Bitbucket Server Webhook 생성

Bitbucket Server Webhook 생성 페이지로 이동 후 정보 입력

Create 클릭



Jenkinsfile 생성

빌드 타입에 따라 선택 후 저장소에 Jenkinsfile 파일 생성 후 코드 붙여넣기

Default Maven 부분을 Jenkins 관리 - Tools - Maven installations의 Name 필드명에 맞춰 수정



위에 설정한 게 작동이 잘 될 경우, 새로 분석이 시작되면 Overview 페이지로 리다이렉트되고, 새 분석 결과를 보여준다.

브랜치에서 새로 Push하거나 Pull Request마다 새로운 분석을 트리거한다.

Bitbucket에서 Pull Request Decoration을 확인할 수 있다.



위의 구성 설정 시, repository push or PR → Jenkins 빌드 → 소나큐브에서 브랜치,PR 분석 확인 완료.

젠킨스 빌드 실패시 소나큐브 분석 X




참조


Jenkins integration (sonarsource.com)

Jenkins global setup & SonarQube (sonarsource.com)

Jenkins 파이프라인에 sonarqube 연동 구성 - 박주현 과장 - Confluence (curvc.com)