github PR을 테스트 할 수 있는 Jenkins job을 만들어 보자. 비교적 간단하지만 빈약한 문서, 여러가지 조합시 버그로 인한 exception등으로 결코 쉽지 않은 작업이었다.
그 중 제일은 역시나 회사 proxy때문 이였다.
Jenkins
내가 테스트 했던 버전은 아래와 같다.
- Jenkins version : 2.102
- plugin> github pull request builder : 1.39.0
이 플로그인을 사용하면 아래처럼 PR에 테스트 결과 등을 표시할 수 있다. 일종의 proof build라고 봐도 됨. TC 뿐만이 아니고 여러개의 status를 추가할 수도 있다.
GitHub Pull Request Builder
설정 순서
- Jenkins>Manage Jenkins>Manage Plugins 에서
github pull request builder
를 설치.github plugin
을 1.29 버전 이상으로 설치(1.28버전이 proxy지원 못하는 버그가 있음.)
Jenkins>Configure System> Github에서
- fill
https://<enterprise github url>/api/v3
입력 - credential 추가.
- github>Settings>Personal access tokens 에서 생성.
- Jenkins>Credential>System>Global credentials> add credential
- Kind:
secret text
선택 - secret에 github의 토큰을 기입
- ID에 적당한 이름을 적어주고
- Kind:
- fill
Jenkins>Configure System>github pull request build 에서
- github server api url 채워주고
- auto-manage webhooks 체크. 이걸 체크하면 웹훅을 자동으로 걸어준다.
- Job 생성
- select New Item > FreeStyle
- source code Management
- fille repository url,
- name as
origin
, - refspec as
+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*
, - branch specifier
${sha1}
- Build Triggers
- check
github pull request builder
- check
user github hooks for build triggering
- Advanced>List of organizations. Their members will be whitelisted. > 에 github orginization 이름을 써 준다.
- check
기타
- log 파일을 tail로 잡으면서 설정하기, 문서도 잘 없고, 로그로 유추해서 설정하는게 시간을 단축할 수 있는 길임.
- freestyle project로 job을 만들고 Build>Invoke top-level maven targets으로 해야 에러가 안남. maven project로 빌드를 돌리면 이런 에러가.