일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- container-registry
- MaxGauge
- gitlab
- PostgreSQL
- runner
- UiARD
- Git
- RPA
- docker
- gitlab-runner
- Shell
- gitlab-ci
- sonar-qube
- Xen
- Oracle
- UIPATH
- UiPATH #UiRPA #RPA
- Today
- Total
올챙이시절 기록소
Sonar-Qube 5.6 (on CentOS) 설치 & 정적분석 실행하기 본문
CI의 프로세스의 한 부분으로 쓰기에 유용한 소나큐브
이 녀석을 설치하고 한 번 수행하는 예제를 보여드리겠다
설치는 간단하기에 절차를 따로 나누지 않는다
Requirement
ref : sonar_qube_docs
JAVA는 1.8 버전이 필요하다.
DB는 아래의 리스트에 있는 것을 사용하거나 아니면 설치하지 않아도 된다.
이때는 embedded DB를 사용하는데 H2라고하는 메모리 DB를 사용한다.
( 개인적인 생각으로는 형상관리의 필요성을 느끼지 못하여 DB를 구축하진 않았다 )
( Gitlab을 사용하는 중이라면 PostgreSQL이 내장되어 있으니 연계해도 좋을 것이다 )
Sonar-Qube & Sonar-Scanner 설치
$ mkdir -p /app/sonarqube
깔끔한 설치를 위해 경로를 하나 만들고
$ cd /app/sonarqube/
해당 디렉토리로 접근
$ wget -O sonar.zip https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.7.zip
파일을 받아줍니다
받는김에 소나큐브 스캐너도 받자
Download URL : Sonar-Qube-Scanner
$ wget -O sonnar-scanner.zip https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
똑같이 파일을 받아줍니다
받은 파일들 확인하고
압축해제 한다
스캐너두 압축해제
zip 파일들은삭제
$ ln -s /app/sonarqube/sonarqube-5.6.7/bin/linux-x86-64/sonar.sh /usr/bin/sonar
파일들을 /usr/bin 경로에 링크를 걸어둔다
이런식으로 위치가 어디든 sonarqube를 켜거나 끌 수 있다
사용할 수 있는 명령어들은 console, start, stop, restart, status, dump 정도가 있다
sonar.sh 참고
525 case "$1" in 526 527 'console') 528 checkUser touchlock $1 529 console 530 ;; 531 532 'start') 533 checkUser touchlock $1 534 start 535 ;; 536 537 'stop') 538 checkUser "" $1 539 stopit 540 ;; 541 542 'restart') 543 checkUser touchlock $1 544 stopit 545 start 546 ;; 547 548 'status') 549 checkUser "" $1 550 status 551 ;; 552 553 'dump') 554 checkUser "" $1 555 dump 556 ;; 557 558 *) 559 echo "Usage: $0 { console | start | stop | restart | status | dump }" 560 exit 1 561 ;; 562 esac 563 564 exit 0
Default로 9000포트에 서비스가 열리니 이렇게 접속하면 웹페이지가 보인다
Default ID / PW : admin / admin
( * 방화벽 처리 필요 )
$ ln -s /app/sonarqube/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner /usr/bin/sonar-scanner
소나 스캐너도 편리함을 위해 링크를 걸어둔다
본격적으로 정적분석을 한 번 해보겠다
$ cd /app/sonarqube/
$ mkdir static_analysis_items $ cd static_analysis_items/
정적분석을 할 형상항목을 여기다 위치 시킬 것이다
mfoweb 항목을 git clone 할 것이다
* mfoweb : maxgague for oracle web front end
SSH 세팅을 안해놔서 ID/PW로 인증절차를 거쳤다
잘 받아 와진다
mfoweb의 디렉토리 내에 설정파일이 하나 있어야
소나 스캐너로 분석이 가능한데
바로 'sonar-project.properties' 이다
파일 내부는 이런식으로 작성되었다
# must be unique in a given SonarQube instance sonar.projectKey=mfo:mfoweb sonar.projectName=mfoweb (web_front_end) sonar.projectVersion=mfoweb_170920.02 sonar.projectBaseDir=./ sonar.sources=PA,RTM,common,config,Exem #sonar.sources=. sonar.language=js sonar.sourceEncoding=UTF-8
# JAVA SCRIPT 항목인 경우
# must be unique in a given SonarQube instance sonar.projectKey=mfo:mfodg sonar.projectName=mfodg (data_gather) sonar.projectVersion=mfodg_170920.01 sonar.sources=. # Encoding of the source code. Default is default system encoding #sonar.sourceEncoding=UTF-8
# JAVA 항목인 경우
분석을 해봅시다
잘 되던 것 같더니
실패를 했다
이유는 플러그인의 버전이 너무 낮기 때문이다
Sonar-qube 플러그인 버전 업 & 다운그레이드 편 참고하면 좋을 것 같다
Update Center에서
Sonar JS 버전을 2.11 -> 3.2 최신버전까지 올린다
Update to 3.2 버튼 클릭
상단의 Restart 버튼 눌러주고
처리가 끝난 후
다시 해보면 잘 된다
웹에서는 이렇게 보여진다!
PS. 소스코드가 푸쉬되면 정적분석을 실시하고 알람을 받도록 세팅을 했었다
중요한 것은 잘하는 개발자분들이 Rules을 만들어 사내 표준을 선도하는 것이라 생각한다
'2017 > 5월' 카테고리의 다른 글
Sonar-Qube API 사용하기 (0) | 2017.10.24 |
---|---|
리눅스에서 링크주소로 받기 ( wget -O 쌈박하게 파일 옮기는 법 ) (0) | 2017.10.23 |
GitLab - Group 프로젝트를 다른그룹에 또 포함 시키려 할 때 ( share with group ) (0) | 2017.10.23 |
GitLab Container Registry API 편 - ( 실패 - 뻘짓의 향연 ) (0) | 2017.10.13 |
GitLab-CI Runner 설치, 등록편 on CentOS - Docker 편 (0) | 2017.10.12 |