2019년 6월 28일 금요일

Jenkins API를 이용한 원격 빌드 방법

시나리오
1) 해당 레포지토리를 빌드하는 Jenkins(A)와 API Test를 하는 Test용 Jenkins(B)가 있다.
2) A에서 빌드가 완료되고 서버의 인스턴스가 올라오면 B에서 테스트가 자동으로 시작된다.
즉, 물리적인 장비가 다르다.

위 시나리오에 맞춰 Jenkins를 구성할 때 아래의 방법을 이용한다.

1. B에서 해당 계정(빌드를 수행할 계정)의 API Token을 얻어온다.
  • http://JENKINS_URL/me/configure 에 접속
  • API Token 란의 show Legacy API Token 클릭(add new token 해도 된다.)
2. A에서 Post Step 란에 Excute Shell을 클릭하고 아래의 URL을 입력한다.
  • http://JENKINS_URL/job/JOBNAME/build or http://JENKINS_URL/job/JOBNAME/buildWithParameters
  • /build 와 /buildWithParameters의 차이 : 빌드 시 parameter 유무
  • ex: curl -d  "branch=master&env=qa" http://JENKINS_URL/job/JOBNAME/buildWithParameters?token=API_TOKEN
3. B에서 빌드 유발에서 "빌드를 원격으로 유발" 클릭하고 Authentication Token에 API Token을 입력한다.