[SonarQube] 코드 품질 분석 Gitlab CI 스크립트로 자동화 하기 (feat. DevOps)

2024. 11. 22. 17:15IT

반응형

 

1. Gitlab 설정
Gitlab 러너 설정


Setting → CI/CD → Runner → sonarqube-test tag 달린 러너 Enable for this project 로 활성화


Setting → CI/CD → Variables → Add variables

 

 

2. sonar-project.properties / .gitlab-ci.yml 머지
프로젝트 루트에 해당 2개 파일 머지

 


3. .gitlab-ci.yml 스크립트 적용
스크립트 (기본값이며 환경에 따라 커스텀 가능)

# stages:
#  - sonarqube_analysis  # 파이프라인 스테이지 사용하는 경우 주석 해제
 
sonarqube-check:
  # stage: sonarqube_analysis  # 스테이지를 사용하는 경우 주석 해제 후 사용
  tags:
    - sonarqube-test  # sonarqube-test 태그 달린 러너 실행용
  image:
    name: sonarsource/sonar-scanner-cli:latest
    entrypoint: [""]
  variables:
    SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"  # 캐시 위치
    GIT_DEPTH: "0"  # 모든 브랜치를 가져옴
  cache:
    key: "${CI_JOB_NAME}"
    paths:
      - .sonar/cache
  script:
    - rm -rf ${CI_PROJECT_DIR}/.sonar
    - sonar-scanner
  allow_failure: true
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "release"'



4. 실제 실행 결과 확인
소나큐브 파이프라인이 돌면 아래와 같이 목록에서 볼 수 있다.


Jobs 에서 작업 내용을 보면 아래와 같이 분석 진행 화면을 볼 수 있다.


아래 그림 처럼 Job succeeded 가 아닌, Job failed 로 떠도 정상이며, 소나큐브의 Quality gate 를 통과하지 못해서 발생하는 오류이다.

 

반응형