3.CI 파이프라인에 통합하기
SonarQube 서버를 CI 파이프라인에 통합 하기 위한 절차는 다음과 같음

- 개발자는 원격 저장소의 main 브랜치에 개발한 소스 코드를 push
- Github의 webhook과 같은 트리거에 의해 Jenkins나 Github Action과 같은 CI 파이프라인이 발동됨
다음 3 ~ 5번은 파이프라인의 동작 과정
-
설정된 Github 원격 저장소를 자신의 로컬 환경에 clone함
-
파이프라인은 clone한 프로젝트가 컴파일이 필요한 언어일 경우, 빌드 과정을 수행함
-
SonarScanner를 실행하여 코드 분석 단계를 실행
-
SonarScanner는 분석 결과를 처리하기 위해 SonarQube 서버에 전달
-
SonarQube 서버는 Quality Gate 통과 가능 여부를 결정하기 위한 처리를 수행하고, 처리 결과를 CI 파이프라인에게 응답
→ 이 단계는 필요에 따라 선택(optional) -
CI 파이프라인은 SonarQube를 통한 코드 분석 절차 이후 남은 코드 분석 절차와는 관련이 없는 다음 작업을 이어서 수행할지 멈출지를 결정
8번에서 CI 파이프라인이 다음 작업을 이어서 수행할지는 보통 다음과 같이 결정함
→ Quality Gate가 통과 가능하다고 응답받은 경우 다음 작업 수행,
Quality Gate를 통과할 수 없는 경우, 병합(merge) 중단,개발자는 Quality Gate가 통과 가능하도록 코드 분석 결과 보고서를 확인 후 코드를 변경하는 작업을 수행
CI 파이프라인별 참고 링크
Jenkins: Adding the SonarQube Community Build analysis to a Jenkins job
GitHub Actions: Adding the SonarQube Community Build analysis to your GitHub Actions workflow