Github PR 시 jenkins 연동

Sbae·2024년 10월 14일
post-thumbnail

현재 k8s 자동 프로비저닝 툴을 개발 중입니다.

Github에서 PR을 올리면 해당 커밋을 jenkins에서 테스트하고 싶어요!

필수사항

Github

setting ➡️ webhooks ➡️ { jenkins 주소 }/github-webhook/
  • PR 요청만 webhook을 보내게 설정이 가능하다.

Jenkins

jenkins 관리 ➡️ plugins ➡️ Github Pull Request Builder 설치

파이프라인 item 설정

  • PR이 열릴 때만 테스트

github project

github pr trigger

  • PR 내용 checkout
    • github 인증 내역을 만들어둬야함( id : 토큰 )
    • github repository url
    • GITHUB_PR_NUMBER는 webhook을 보내올 때 기본 parameters
  • refspec: '+refs/pull/${GITHUB_PR_NUMBER}/head:refs/remotes/origin/pr/${GITHUB_PR_NUMBER}'을 이용하여 원격 저장소에있는 내용을 받아온다.
checkout scmGit(branches: [[name: 'FETCH_HEAD']], userRemoteConfigs: [[credentialsId: '[github 인증 명]', url: '[github repository url]', refspec: '+refs/pull/${GITHUB_PR_NUMBER}/head:refs/remotes/origin/pr/${GITHUB_PR_NUMBER}']])
  • 끝나면 PR status도 바꿔줘야하는데?
script {
  // 해당 스크립트를 이용하여 PR이 올라와있는 최신 커밋명을 가져온다.
  def commitSha = sh(script: 'git rev-parse HEAD', returnStdout: true).trim()
  githubNotify account: '[repo 소유자]', context: 'PR CI Build' , credentialsId: '[github 인증 명]', description: 'PR test', repo: '[저장소 이름]', sha: commitSha, status: 'SUCCESS', targetUrl: '[github에서 Detail을 누르면 이동하는 url]'
}
profile
끄적이는 일반인

0개의 댓글