[DevOps] Jenkins Build Pipeline 최적화: SonarQube 연동 및 통합으로 코드 품질 관리 자동화
- Jenkins
- Sonarqube
소나큐브(SonarQube, 이전 이름: 소나/Sonar)는 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰를 수행하기 위한 지속적인 코드 품질 검사용 오픈 소스 플랫폼이다.
소나큐브는 중복 코드, 코딩 표준, 유닛 테스트, 코드 커버리지, 코드 복잡도, 주석, 버그 및 보안 취약점의 보고서를 제공한다.
properties([ parameters([ string(name: 'sonar.projectKey', defaultValue: 'com.appsecco:dvja'), string(name: 'sonar.host.url', defaultValue: 'http://34.64.237.112:9000'), string(name: 'sonar.login', defaultValue: '608cacd6bb83c50712ebb34c4cba377c841cdebb') ]) ]) ...
stage ('Dependency-Check Analysis') { steps { sh '/var/lib/jenkins/dependency-check/bin/dependency-check.sh --scan `pwd` --format XML --out /var/lib/jenkins/workspace/ci-build-pipeline/dependency-check-report --prettyPrint' dependencyCheckPublisher pattern: 'dependency-check-report/dependency-check-report.xml' } } stage('Sonarqube and Quality gate') { options { timeout(time: 5, unit: 'MINUTES') retry(2) } steps { withSonarQubeEnv('SonarQube Server') { sh "mvn sonar:sonar" } script { qualitygate = waitForQualityGate() if (qualitygate.status != "OK") { currentBuild.result = "FAILURE" } } } }