공부하는 스누피

[Jenkins] GitHub custom status check 본문

정리 모음

[Jenkins] GitHub custom status check

커피맛스누피 2022. 7. 1. 16:51

Jenkins와 GitHub repo를 연동하면

trigger 발생시 빌드가 실행되면서 PR 페이지에 status check가 자동으로 추가된다.

 

status check는 context(아이디 개념), message, status로 구성되어 있다.

context는 status check의 구분 단위라서 status나 message만 바꾸고 싶은 경우

바꾸고자 하는 status check의 context를 사용해야 한다.

 

이때 status check의 context나 message, status는 Jenkins에서 자동으로 만들어주는거라 원하는 내용이 아닐 수 있는데,

대부분 프로젝트는 이걸 설정 페이지에서 바꿀 수 있지만

Multibranch Pipeline의 경우 불가능해서 JenkinsFile에서 커스텀한 status check를 추가해야 한다.

 

GitHub custom status check 추가

JenkinsFile에 status check api를 호출하는 함수를 만들고, 원하는 곳에서 호출한다.

setBuildStatus('원하는 context명', 'Build 성공', 'SUCCESS')

...

void setBuildStatus(context, message, state) {
  step([
      $class: "GitHubCommitStatusSetter",
      contextSource: [$class: "ManuallyEnteredCommitContextSource", context: context],
      reposSource: [$class: "ManuallyEnteredRepositorySource", url: "https://github.com/my-org/my-repo"],
      errorHandlers: [[$class: "ChangingBuildStatusErrorHandler", result: "UNSTABLE"]],
      statusResultSource: [ $class: "ConditionalStatusResultSource", results: [[$class: "AnyBuildResult", message: message, state: state]] ]
  ]);
}

 

기존 status check를 없애기

 

- Jenkins에 Disable GitHub Multibranch Status 플러그인을 설치한다.

https://plugins.jenkins.io/disable-github-multibranch-status/

 

Disable GitHub Multibranch Status

Adds support for disabling the GitHub status for a Multibranch pipeline job.

plugins.jenkins.io

- 적용하고자 하는 Project 설정에서 behavior > Disable GitHub Notifications 활성화

 

 

참고

https://stackoverflow.com/questions/54399220/how-can-i-rename-jenkins-pull-request-builders-status-check-display-name-on

'정리 모음' 카테고리의 다른 글

SonarQube 8.9 연동 가이드  (0) 2022.06.24
Clean Code 메모 정리  (0) 2021.03.19
도커(Docker) 사용법  (0) 2021.01.01
슈도코드(의사코드, pseudocode) 가이드라인  (0) 2020.10.19
[기술면접]자료구조 정리  (0) 2020.10.19
Comments