Generic WebHook Trigger 설정
Jenkins 에서 Github 나 GitLab 와 연동하기 위해서 Generic WebHook Trigger 플러그인을 많이 사용한다. 검색을 해보면 사용법이 아주 많이 나오는데, 특정 브랜치(Branch) 에만 작동되게 하기 위해서 Execute Shell 를 활용하는 사례를 볼 수 있다.
하지만 Generic WebHook Trigger 플러그인 설정에서 그냥 특정 브랜치만 반응하도록 할 수 있다.
제일 먼저 Post content parameters 에서 Variable 에 “ref”, Expression 에는 “$.ref” 를 적어주고 JSONPath 를 선택해 준다.
이것은 Github나 GitLab 가 jenkins 를 호출할때에 JSON 포맷으로 관련 데이터를 넘겨주게 된다. JSON 포맷이기 때문에 이 포맷에서 특정 값을 가지고 오기 위해 정규표현식을 사용할 수 있는데, “$.ref” 는 “refs/heads/master” 식의 값을 가지고 오게 된다. 그리고 이러한 값은 이 플러그인에서 $ref 라는 변수에 할당되게 된다.
대부분 이렇게 설정을 한 후에 Execute Shell 를 사용하는데, 그럴 필요가 없이 추가적인 설정을 다음과 같이 하면 된다.
Generic WebHook Trigger 플러그인 설정에서 좀 더 아래로 내려보면 “Optional filter” 이 있는데 여기에 Expression 에 브랜치를 “refs/heads/master” 라고 적어준다. 그리고 Text 에는 앞에서 설정한 변수명인 $ref 를 적어준다.
이렇게 하면 master 브랜치만을 체크해 이 플러그인이 작동되게 된다. 다른 브랜치에만 반응하도록 하기 위해서는 “refs/heads/[브랜치 이름]” 으로 적어 놓으면 된다.
굳이 Execute Shell 을 이용하지 않아도 된다.