[Jenkins Pull Request] Jenkins에 Pull Request의 빌드를 수행하는 Job 만들기

2021. 8. 29. 15:01CI&CD/Jenkins

728x90
반응형
Git, Sourcetree 등을 이용해 코드의 형상관리나 버전관리를 하는 사람들이라면 Pull Request라는 것을 알 것이다. 오늘은 Pull Request를 올릴 때 코드가 정상적으로 빌드가 되는지 확인해 주는 것을 Jenkins를 통해 자동화 하는 것을 기록한다.

참고사항
 - Pull Request는 브랜치와 상관없이 올릴 수 있지만, 일반적으로 master에 코드를 추가할 때만 Pull Request를 하기에 여기에서도 master에 Pull Request를 한다는 가정으로 기록한다.( 그 외의 브랜치에 코드를 추가할 때는 그냥 push만 한다.)

 

1. '빌드 유발' 란의 'Bitbucket Pull Requests Builder'를 체크하여 정보들을 입력한다.

(Jenkins에서 새로운 Job을 만들던지, 기존 Job의 구성을 들어가면 된다.)

 - Bitbucket URL : Pull Request를 올리는 Bitbutcket의 주소를 포트번호까지만 적는다.

 - Cron : *을 다섯 개 입력하여 Pull Request가 올라오는 즉시 바로 빌드가 시작되도록 한다.

  -> Pull Request가 올라와도 특정 시간대에 빌드가 되게 하고 싶다면 특정 숫자를 입력

 - Credentials : Add 버튼을 눌러 Bitbutcket에 로그인하는 정보 입력(다음 링크 참고 : [Jenkins] 소스코드에 push가 발생할 때마다 Jenkins 빌드하기 (tistory.com))

 - Bitbucket BasicAuth Username : 'Credentials'에서 입력한 로그인 정보의 아이디를 입력

 

2. Bitbutcket에서 Pull Request를 올릴 때 master가 저장되어 잇는 저장소의 상위 이름과 저장소 이름을 적어주면 된다.

 - bitbucket에서 clone을 할 때나 bitbucket의 주소를 보면 아래 빈칸에 입력할 정보를 확인할 수 있다.

 

3. 나머지 사항들은 default 상태로 놔둔다.

 - 'Comment phrase to trigger build' : bitbucket의 Pull Request 화면에서 Comment란에 이 부분에 입력된 'test this pelase'를 입력하면 Pull Request와 연결된 Jenkins의 Job이 빌드된다.

  -> Pull Request를 올릴 때 혹은 Pull Request 도중 push가 발생했을 때를 제외하고 또 다시 빌드를 해야할 때 사용

 

4.  'Build' 탭에서 'Execute Windows batch command'를 추가하고 아래의 정보를 입력한다.

 - 환경변수 pullRequestId와 sourceBrranch : Pull Request 번호와 master에 병합되려고 하는 브랜치의 이름

 - fetch : 저장소에 있는 브랜치 정보를 내 PC에 있는 저장소로 가져와 최신화 하는 것

 - checkout : 내 PC에 있는 저장소에서 로컬로 최신화 하는 것

 - FETCH_HEAD : 바로 윗줄의 fetch로 가져온 브랜치(master로 병합되는)

 

git에 대한 이론적인 내용들은 약식?으로만 설명했는데 기회가 되면 추후 따로 게시글을 작성하도록 하겠다.