본문 바로가기
공부/프로그래밍

[jenkins] webhook 사용 자동빌딩(배포) 시, 특정 브런치명만 실행하기(CI/CD 옵션)

by demonic_ 2021. 10. 13.
반응형

내 경우 Gitlab을 git으로 사용하고 소스가 변경되는 경우(push) Jenkins 에 통보하여 알린다음 자동 CI/CD가 되도록 구축했는데, Gradle의 멀티모듈을 사용하다보니 여러 프로젝트가 동시에 빌딩되는 문제가 생겼다. 예를들어 1개의 멀티모듈에 A,B,C 프로젝트가 있고, B라는 프로젝트를 수정해서 푸시, 자동배포하길 기대했는데 A,B,C가 모두 배포되는 것이다.

 

확인해보니 Gitlab 에서 Push events 를 보낼때 지정하는 것과, Jenkins 에서 허락한 브런치의 변화에서만 수정하는 방법이 있었다. 둘다 알아보자

 

 

# Gitlab 에서 하는 방법

Project > Settings > Integration Settings 에 들어가면 webhook 설정이 가능하다. 여기에서 Trigger 부분에 Jenkins로 알릴 브런치 이름을 지정하는 방법이다.

이렇게 되면 해당 브런치에 푸시가 일어나지 않는 한 연결되어 있는 Jenkins 의 프로젝트로 푸시를 보내지 않는다. 설정법은 다음과 같다.

 

Push events 라고 쓰여있는 부분에 지정한 브런치이름을 작성하면 된다.

이렇게 하면 적용한 브런치가 push되지 않는 한 Jenkins 에 전송하지 않는다.

 

 

 

# Jenkins 에서 설정하는 방법

빌드 유발 > Build when a change is pushed to Gitlab ... 라고 쓰인 옵션을 체크한 상태라면 고급버튼을 눌러 확장한다.

아래쪽에 보면 Allowed branches 라고 적혀있다. 여기서 Filter branches by name 을 선택한 뒤, Include 안에 설정한 브런치 이름을 넣어두면 된다.

 

내 경우 Gitlab 에서 우선 설정했고, 필요에 따라 jenkins 에 추가설정 했다.

 

 

끝.

 

반응형

댓글