본문 바로가기
  • 폴라리스 오피스 기술 블로그
Polaris Office Story/Guide

[Bamboo] Sonarqube 연동하여 코드 품질 분석하기

by 인프라웨어 2018. 7. 20.

 

Sonarqube 소개

 Sonarqube(https://www.sonarqube.org)는 코드를 정적분석하여 20개 이상의 프로그래밍 언어에 대한 버그, 코드 악취 및 보안 취약점을 탐지하는 "오픈소스" 제품입니다. 중복코드, 코딩표준, 코드 커버리지, 코드 복잡성, 버그 및 보안 취약점에 대한 보고서를 제공합니다. 

 Sonarqube는 무료로 설치 및 사용이 가능하지만 기본으로 지원하는 프로그래밍 언어 외 다른 프로그래밍 언어를 분석하고 싶으면 Commercial Editions을 구입해야 합니다. 

Community Edition에서 지원해주는 언어는 아래와 같습니다. 

Java, Java Script, C#, Type Script, Flex, Phython, PHP, Web & XML

 

 

 

Sonarqube 설치하기

※ Sonarqube v6.7.3 ubuntu 16.04 LTS 설치. 작업 전 https://docs.sonarqube.org/display/SONAR/Installing+the+Server 공식 문서 참고

 

1. Sonar 홈페이지에서 패키지 다운로드 (https://www.sonarqube.org/downloads)

root@ubuntu:~# wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.3.zip

 

2. sonarqube-6.7.4.zip 압축해제 

root@ubuntu:~# unzip sonarqube-6.7.3.zip

 

3. DB생성 (Mysql 기준. Data Center Edition은 Mysql 미지원)

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_bin;GRANT ALL PRIVILEGES ON sonar.* TO '계정'@'localhost' IDENTIFIED BY '비밀번호';FLUSH PRIVILEGES;

 

4. sonarqube 계정 생성

root@ubuntu:~# useradd 계정

 

5. sonarqube 소유자 변경

root@ubuntu:~# CHOWN -R 계정:계정 <install path>

 

6. sonar.sh파일에서 계정 수정

root@ubuntu:~# cd <install path>/bin/<사용자 OS>

root@ubuntu:~# vi sonar.sh

 

................ 생략 ..................

 

Run_AS_USER=계정

 

................ 생략 ..................

 

7. sonar.properties 수정

root@ubuntu:~# cd <install path>/conf

root@ubuntu:~# vi sonar.properties

 

................ 생략 ..................

 

sonar.jdbc.username=계정

sonar.jdbc.password=비밀번호

sonar.web.host=<Server IP>

 

................ 생략 ..................

 

 

8. 메모리 설정

root@ubuntu:~# cd <install path>/conf

root@ubuntu:~# vi wrapper.conf

 

................ 생략 ..................

 

wrapper.java.initmemory=512

wrapper.java.maxmemory=1024

 

................ 생략 ..................

 

 

9. 실행

root@ubuntu:~# cd <install path>/bin/<사용자 OS>/sonar.sh start

 

 

10. 접속 (기본 포트는 9000으로 설정되어 있으며 System admin 계정의 초기값은 admin/admin)

 

 

 

Bamboo 소개

Bamboo는 Atlassian 사에서 공급하고 있는 CI(Continuous Integration)  & CD(Continuous Delivery) 제품입니다. 

 

비슷한 제품으로는 OSS 제품인 Jenkins가 있습니다. 하지만 Bamboo가 유료 제품인 만큼 좀 더 많은 기능을 제공해주고 있습니다.

 

 

 

 

 

Bamboo +  Sonarqube 

※ Bamboo v 5.15

 

1. Bamboo에 Sonar for Bamboo 설치  

 

2. 설치한 Sonar 서버 정보 입력 ( Admin > Sonar for Bamboo)

 

 

 

3. Remote Agent에 sonar-scanner 설치 (https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner#AnalyzingwithSonarQubeScanner-Installation 참고)

※ sonar-scanner : 대상 폴더 및 소스파일을 스캔하여 Sonar Server로 전달

 

root@ubuntu:~# wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-linux.zip

root@ubuntu:~# uzip sonar-scanner-cli-3.2.0.1227-linux.zip

root@ubuntu:~# cd <install_directory>/conf

root@ubuntu:~# vi sonar-scanner.properties

................ 생략 ..................

 

sonar.host.url=<sonar server URL>

 

................ 생략 ..................

 

 

4. 환경변수에 sonar-scanner 경로 설정

 

root@ubuntu:~# vi ~/.profile

................ 생략 ..................

 

export PATH=$PATH:<install_directory>/bin

 

................ 생략 ..................

 

root@ubuntu:~# source ~/.profile

root@ubuntu:~# sonar-scanner -h

 

 

5. sonar project 생성

 

6. Bamboo Plan 생성

 

 

7. Bamboo sonar Task 생성

 

8. Sonar Task 설정

 - 설정한 Sonar Server를 선택한다.

 

 

 

 - Override Sonar properties from build를 체크하고 Sonar Server에서 Project Key, Name, Version을 입력한다.

 

 

9. Bamboo Plan을 Build 하고 Sonar Server의 프로젝트에서 결과를 확인한다.

 

 

 

 

Contact us
Address서울특별시 금천구 가산디지털1로 19 대륭테크노타운 18차 19층
Phone02-6190-7513
E-mail AtlassianBiz@polarisoffice.com
Homepage partner.polarisofficecorp.com/atlassian/

 

 

 

 

 

 

사업자 정보 표시
인프라웨어테크놀러지 | 엄태철 | 서울특별시 금천구 가산디지털1로 19 대륭테크노타운 18차 19층 | 사업자 등록번호 : 109-86-08147 | TEL : 02-6190-7513 | Mail : partner@infrawaretech.com | 통신판매신고번호 : 110111-3676404호 | 사이버몰의 이용약관 바로가기

댓글