도커를 사용하여 소나큐브를 설치합니다.
소나큐브의 default 포트번호는 9000입니다.
초기 ID와 Password는 admin으로 최초 로그인시 비빌번호를 변경페이지가 나옵니다.
Manually에서 소나큐브 프로젝트를 생성합니다.
Locally에서 프로젝트의 토큰을 생성합니다.
최초 토큰 생성시에만 확인할 수 있으므로 토큰을 저장합니다.
Dashboard > Jenkins 관리 > 플러그인 관리 > Available plugins에 들어갑니다.
검색하여 나오는 SonarQube Scanner를 설치합니다.
Dashboard > Jenkins 관리 > Credentials > (global) > Add Credentials에 들어갑니다.
Secret
: 2에서 생성한 소나큐브 Project Token을 입력합니다. (Token Name : Analyze "cicdtest")
ID
: 임의의 식별가능한 이름을 작성합니다. (ex. SONAR_TOKEN)
Dashboard > Jenkins 관리 > 시스템 설정에 들어가서 SonarQube Servers 항목을 찾습니다.
Name
: 임의의 식별가능한 이름을 작성합니다. (ex. sonarqube)
Server URL
: 빈칸으로 두면 소나큐브의 기본 설정 주소가 사용됩니다.
Server authentication token
: 4번
에서 등록한 토큰을 사용합니다. (SONAR_TOKEN)
Dashboard > Jenkins 관리 > Global Tool Configuration에서 SonarQube Scanner 항목을 찾습니다.
Add SonarQube Scanner 누른 후 값을 입력합니다.
Name
: 임의의 식별가능한 이름을 작성합니다. (ex. sonarqube-scanner)
자동 설치 체크를 확인하고 설치되는 버전을 확인합니다.
분석할 프로젝트의 root위치에 sonar-project.properties를 생성합니다.
https://docs.sonarqube.org/9.8/analyzing-source-code/scanners/sonarscanner/
Dashboard > 프로젝트명 > 구성(Configuration)에서 파이프라인 스크립트를 작성합니다.
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git branch: 'main',
credentialsId: 'github_access_token',
url: 'https://github.com/LaStella/practice-cicd.git'
}
}
stage('Build') {
steps {
// sh './gradlew clean'
// sh './gradlew build'
sh './gradlew clean bootJar'
}
}
stage('SonarQube analysis') {
steps{
script {
def scannerHome = tool 'sonarqube-scanner'
withSonarQubeEnv(credentialsId:"SONAR_TOKEN",installationName:'sonarqube') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
}
}
}
}
6번
에서 설정한 소나큐브 스캐너 이름을 넣습니다.4번
에서 등록한 토큰을 사용합니다. (SONAR_TOKEN)5번
에서 정한 이름을 넣습니다. (sonarqube)https://www.jenkins.io/doc/pipeline/steps/sonar/
젠킨스 파이프라인 정리 - 2. Scripted 문법 소개
[SONARQUBE&JENKINS] 소나 큐브, 젠킨스 파이프라인 적용
소나큐브 설치하기
[SonarQube] 소나큐브 설치하기
CI/CD #11. Jenkins(젠킨스)와 Sonarqube(소나큐브) 연동
[SonarQube] SonarQube & Jenkins 이야기
Jenkins로 CI/CD Pipeline 구축하기 - 10. Jenkins와 Sonarqube 연동