[Jenkins] GitLab Webhooks를 이용한 젠킨스 연동 및 빌드유발

728x90
반응형

 

 

 


 

 

Summary

Gitlab의 Webhooks은 프로젝트 내에서 어떠한 일이 발생할 때, 이벤트를 바인딩 하는데 사용 할 수 있습니다. 

이 기능을 이용하면, 다양한 Event를 발생 시킬 수 있는데요. 

 

Gitlab에 있는 Webhooks 를 이용해서 Push Event를 보내 Jenkins의 빌드를 유발시킬 수 있는 내용을 정리했습니다. 

젠킨스 버전은 Jenkins 2.399 을 사용하고 있어서 UI 및 PlugIn 내용이 조금 다를수 있으니 참고해주세요.

 

 

 

 

 

## PlugIn 설치

Jenkins 플러그인 설치 : GitLab Plugin 이미지

먼저 Jenkins에서 Plugin을 하나 설치 해야 하는데요. 이전 버전에서는 해당 플러그인이 아니였었는데,

바뀐 Jenkins 버전에서는 Gitlab Plugin 으로 통합된 거 같습니다. 

문서를 자세히 보지 않았으나, 해당 플러그인을 설치해주니,

Gitlab의 Webhooks 이벤트를 받을 수 있는 설정화면을 찾을 수 있었어요.

 

 

 

 

 

 

 

## 프로젝트 구성 수정

 

Jenkins 빌드 유발 설정 이미지

해당 플러그인을 설치하면, 그 전에 보이지 않았던, 빌드유발 메뉴에 선택사항이 하나 추가 됩니다. 

Build when a change is pushed to GitLab. GitLab webhook URL: xxx

바로 위 내용인데요. 변경사항이 GitLab에 푸쉬될때 빌드 된다는 내용이며, 별도의 URL을 제공해줍니다.

 

URL 내용이, GitLab 설정시 필요하니 확인해주시면 됩니다.

http://000.000.000.000:8080/project/<ProjectName>

 

 

 

 

Jenkins 빌드 유발 설정 이미지 2

해당 메뉴를 선택하면, 위 화면같이 추가 구성이 나오게 되는데요.

저희는 Push Events 를 사용할 것이여서, Default 로 선택되어져 있는 체크박스를 유지해주시면 됩니다. 

그리고 아래에 있는 고급 탭을 선택해줍니다.

 

 

 

 

 

Jenkins 빌드 유발 설정 이미지 3

고급탭 선택시, 하단에 Secret Token 이 보여지게 되는데요. Default 로 빈값이 존재합니다. 

이때 Generate 버튼을 클릭하면, 문자열이 생성이 되는데요. 이 값도 GitLab 설정시 필요한 값이니 적어둡니다.

 

 

 

 

 

 

 

## GitLab WebHook 설정

 

GitLab Webhooks 설정 이미지

Jenkins 에서 설정이 완료가 되었다면, 이제는 GitLab에서 설정을 해주면 되는데요. 

프로젝트 설정 화면에 있는 Settings 메뉴의 Integrations 메뉴에서 Webhooks 를 설정 할 수 있습니다. 

 

 

 

 

 

 

GitLab Webhooks Push Events 설정 이미지

 

해당 화면에서, Jenkins에서 체크한 URL 및 Secret Token 값을 입력해주고, 

Push Event를 체크하며, 어떠한 branch 에 push가 발생했을때 Push Event 를 발생할지 입력해줍니다. 

저의 경우에는 dev 브런치를 이용하고 있어서 dev를 입력했습니다.

그리고 하단에 Add webhook 버튼을 클릭해주면 기본적인 설정은 완료가 됩니다. 

 

 

 

 

 

 

## WebHook 테스트

GitLab Webhooks Test 이미지

설정이 완료가 되었다면, Push Events 가 잘 발생이 되는지 테스트를 해 볼 수 있는데요. 

위 화면처럼 Test 드롭다운 박스를 클릭하면, Push Event 및 다양한 테스트를 해볼 수 있습니다. 

 

해당 이벤트를 클릭하면, Jenkins에 정상적으로 빌드가 유발되는 화면을 확인 할 수 있습니다. 

 

 

 

이렇게 설정을 해 놓으면, 

GitLab repository 'dev' 브런치에 push 를 할 경우, 자동적으로 Jenkins 가 호출이 되고요. 

이를 이용해서 자동 빌드 및 배포, 다양한 기능을 활용할 수 있으니, 꼭 한번 활용해 보시면 좋을거 같습니다. 

 

 

 

 

 

 

참조

 

 

 

 

 

 

 

 

 

END


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90