...
Merge Request Decoration 설정
Jenkins
Multibranch Pipeline Job 생성
Jenkins Dashboard 왼쪽 메뉴 - 새로운 Item을 클릭합니다.
Multibranch Pipeline 유형 선택 후, 프로젝트 이름을 입력하고 OK를 클릭합니다.
Branch Sources 섹션에서 Add source > GitLab Project를 선택합니다.
GitLab Project 정보를 입력합니다.
Server: GitLab Server를 선택합니다.
Checkout Credentials: GitLab 접근을 위한 인증 정보를 선택하거나 추가합니다.
Owner: GitLab 사용자 또는 그룹명을 입력합니다.
Projects: 대상 프로젝트를 선택합니다.
Behaviors에서 다음과 같이 설정합니다.
Discover branches: Only branches that are not also filed as MRs을 선택합니다.
Discover merge requests from origin: The current merge request revision을 선택합니다.
Ref Spec 지정을 위해 Add 클릭하여 Specify ref specs를 선택합니다.
다음과 같이 설정합니다.(기본값)
Specify ref specs: +refs/heads/*:refs/remotes/@{remote}/*
GitLab Webhook 추가
GitLab Project > Settings > Webhooks로 이동합니다.
Add new webhook을 클릭합니다.
다음 정보를 입력합니다.
URL: JENKINS_SERVER_URL/gitlab-webhook/post
Trigger에서 다음 항목을 체크합니다.
Push events
Merge request events
Add webhook을 클릭하여 webhook을 추가합니다.
Jenkinsfile 생성
빌드 도구/언어에 따라 다른 옵션을 추가합니다. 아래는 maven에 대한 Jenkinsfile 설정입니다.
Gitlab 저장소에 아래 코드를 추가하여 Jenkinsfile을 생성합니다.
코드 블럭 node { stage('SCM') { checkout scm } stage('SonarQube Analysis') { def mvn = tool 'maven'; withSonarQubeEnv() { sh "${mvn}/bin/mvn clean verify sonar:sonar -Dsonar.projectKey=sonarqubetest_sonarqube-multi-pipeline-test_fdb755e4-32e3-4e0e-a820-bd1ddec62015 -Dsonar.projectName='sonarqube-multi-pipeline-test'" } } }
def mvn = tool 'Default Maven'; : Jenkins 관리 > Tools에 미리 정의된 Maven 이름을 사용해야 합니다.
-Dsonar.projectKey=YOUR_PROJECT_KEY: SonarQube의 프로젝트 키 값을 입력합니다.
-Dsonar.projectName='YOUR_PROJECT_NAME': SonarQube의 프로젝트 이름을 입력합니다.
Merge Request 분석 확인
새로운 Merge Request를 생성하여 Jenkins 빌드 실행을 확인합니다.
SonarQube Overview페이지에서 분석 결과를 확인합니다.
Gitlab Merge Request페이지에서 SonarQube 분석 정보가 정상적으로 표시되는지 확인합니다.
...