Jenkins + Sonarqube 연동

MIIIN·2021년 9월 10일
0
post-thumbnail

🧬 Sonarqube?

Sonarqube는 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰를 수행하기 위한 지속적인 코드 품질 검사용 오픈 소스 플랫폼이다. Sonarqube는 중복 코드, 코딩 표준, 유닛 테스트, 코드 커버리지, 코드 복잡도, 주석, 버그 및 보안 취약점의 보고서를 제공한다.
출처 : wikipedia

개발자가 모든 버그나 코드 스멜 그리고 보안 취약점을 생각하면서 코딩하기에는 거의 불가능하다. 이런 문제점을 해결하기위해 SonarSource 사가 개발한 Sonarqube 툴을 사용한다. 여기서는 Sonarqube를 설치하고 Jenkins와 연동까지 해본다.
최종적으로 Git Push -> Jenkins -> Sonarqube -> Build -> Tomcat 배포까지 자동화된다.


👣 Sonarqube 설치

시작하기에 앞서 Sonarqubd 8.9.2 버전기준으로 Java 11 이상만 지원한다!

https://www.sonarqube.org/downloads/
무료 버전인 Community Edition으로 다운로드!

Windows 10 기준으로 다운받은 압축파일을 풀어서 Windows PowerShell을 관리자 권한으로 실행한 뒤 압축 파일의 bin\windwos-x86-64 위치로 이동한다.

목록의 배치파일(.bat)중에 StartSonar.bat 파일을 실행하고 마지막에 SonarQube is up이 뜨면 정상적으로 실행된 것이다.


👣 Sonarqube 관리자 화면

Sonarqube의 관리자 화면은 localhost:9000이나 127.0.0.1:9000으로 접속하면 된다. 초기 화면의 username, password는 둘다 admin이다.

로그인하면 다음과 같은 홈화면이 뜬다.


👣 Sonarqube Token 생성

Sonarqube

Administration -> Security -> Users -> Tokens 버튼을 눌러서 Token을 생성한다.

Generate Tokens 입력창안에 Token명을 입력한뒤 Generate 버튼을 눌러 생성된 Token을 따로 복사하여 저장해둔다.


👣 Sonarqube 프로젝트 생성

Projects -> Add a project 버튼을 눌러 새로운 Sonarqube 프로젝트를 생성한다.

Manually 선택

Project Key 및 Display Name 입력


👣 Jenkins SonarQube Scanner Plugin 추가 및 설정

Jenkins 관리 -> Plugin Manager에서 SonarQube Scanner 플러그인 설치

Jenkins 관리 -> Global Tool Configuration에서 SonarQube Scanner 추가

Jenkins 관리 -> System Configuration에서 SonarQube servers 설정


👣 Jenkins Item 구성 설정

Jenkins Item -> 구성 -> Pre Steps에서 Execute SonarQube Scanner 추가

Analysis properties 설정
1) sonar.login : Sonarqube 관리자 화면에서 생성한 Token 입력
2) sonar.projectKey, sonar.projectName : 생성한 Sonarqube project Key입력

설정 저장 후 Item의 Build Now를 클릭해보자!


👣 Sonarqube 결과 화면

빌드 후 Sonarqube 관리자 화면에서 등록한 프로젝트로 이동하면 다음과 같은 결과가 표시된다.

🎉 이제 열심히 코드를 고쳐보자! ㅠㅠ

profile
백엔드개발자

0개의 댓글