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에 대한 이론적인 내용들은 약식?으로만 설명했는데 기회가 되면 추후 따로 게시글을 작성하도록 하겠다.
'CI&CD > Jenkins' 카테고리의 다른 글
[Jenkins 빌드 오류] svn: E170013과 svn: E230001 (2) | 2021.08.29 |
---|---|
[Jenkins] Jenkins Job에서 VS 빌드 시 라이선스 오류 해결방법 (0) | 2021.07.07 |
[Jenkins] 소스코드에 push가 발생할 때마다 Jenkins 빌드하기 (0) | 2021.07.04 |
[Jenkins] Jenkins에서 Master-Slave 구성하기 (0) | 2021.06.14 |
[Jenkins] Jenkins 접속 주소를 IP로 변경하기 (6) | 2021.06.14 |