Web

Jenkins github webhook 연동

NYoun 2021. 12. 28. 17:05

지난 포스팅인 Jenkins로 Springboot 배포에 이어서 github webhook을 연동하는 법.

 

https://myyoun.tistory.com/164

 

Jenkins로 Spring Boot 프로젝트 빌드&배포하기

CI/CD에 대한 언급이 많은 만큼 Jenkins를 통해 구축해보기로 했다. CI/CD는 따로 정리할 예정. 환경은 다음과 같다. AWS EC2 Ubuntu 20.04 Spring Boot 2.5.4 Gradle 7.1.1 CI/CD를 제대로 구축하게 되면 git에 p..

myyoun.tistory.com

 

 

git Webhook 은 git Repository에 push, commit, tag와 같은 이벤트가 발생하게 되면 Jenkins 같은 CI 서버에 이벤트를 HTTP POST payload로 전달하도록 하는 기능이다.

그럼 이벤트를 받은 CI 서버에서는 설정해놓은 스크립트 및 빌드를 실행하게 된다.

 

이전 포스팅에서는 git에 push 해준 상태에서 Jenkins 페이지로 들어가 직접 빌드 버튼을 눌러야 빌드하고 배포하는 과정이었다면 webhook을 연결함으로써 push 해주기만 해도 알아서 빌드와 배포까지 처리해주도록 하는 것이다.

 

환경으로는 

  • AWS EC2 Ubuntu 20.04

여기서는 webhook 연동이기 때문에 나머지 환경에 대해서는 굳이 언급이 필요없을듯 하다.

 

먼저 Jenkins 페이지에서 GitHub Integragion Plugin을 설치한다.

이전에 해보면서 이미 설치 되어있기 때문에 따로 나오는건 없지만 설치 가능을 누르고 검색하면 나온다.

체크하고 Install without restart 클릭. 저 DotCi를 설치하는건 아니고, 

 

이것을 설치하면 된다.

 

 

다음은 GitHub Token을 발급 받는다.

 

오른쪽 상단 아이콘 클릭해서 Settings로 이동.

 

왼쪽 메뉴에서 Developer settings로 이동.

 

personal access tokens -> Generate new token을 눌러 새로운 토큰을 생성한다.

 

Note는 임의로 작성하면 되고 repo와 admin:repo_hook을 체크한 뒤 생성!

 

이렇게 토큰이 나온다.

 

이 토큰을 Jenkins에 등록한다.

 

젠킨스 페이지에서 Jenkins관리 -> Manage credentials 클릭.

 

Stores scoped to Jenkins 아래에서 global 클릭

 

왼쪽 메뉴에서 Add Credentials 클릭.

 

kind 는 Secret text 를 선택해주고 Secret에는 방금 생성한 토큰을 복사해 붙여준다.

ID는 github username을 입력한다.

Description은 선택사항.

다 작성했으면 OK.

 

Jenkins관리 -> 시스템 설정으로 이동한다.

 

Add GitHubServer를 눌러 GitHub Server를 선택한다.

 

Name은 임의로 입력.

Credentials 에는 방금 생성한 Credential을 선택해준다.

그리고 Manage hooks 체크 한뒤 Apply -> 저장.

 

연동할 Repository에서 Settings -> Webhooks -> Add webhook

 

Payload URL에는 jenkins접속 주소와 포트를 적고 그 뒤에 github-webhook/ 을 붙여준다.

webhook 뒤에 / 안붙이면 제대로 안되니 / 꼭 붙일것!!!!!!!!!

Add webhook 클릭.

 

그럼 이제 jenkins 페이지로 이동해 해당 item으로 이동 한뒤 구성으로 이동.

 

나머지는 이전 포스팅과 셋팅은 동일하고 빌드유발에서 GitHub hook trigger for GITScm polling 만 체크해준다.

 

그럼 설정 끝~~!!!!

 

확인은 해당 프로젝트를 조금 수정해 repository에 push 해보거나 README.md 파일 있으면 그냥 repository 페이지에서

README.md만 수정해보면 된다.

 

편하게 README.md 수정으로 테스트

 

제대로 연결이 되어있다면 jenkins페이지 build에 알아서 이렇게 진행 되는것을 볼 수 있다.

 

그럼 당연히 서버에서 확인해도 수정이 잘 되어있는것을 볼 수 있다.

그리고 webhook에서도 제대로 처리 되면 저렇게 초록색 체크가 되어있다.

 

참고

https://www.comtec.kr/2021/07/22/jenkins-webhook-%EC%84%A4%EC%A0%95/

 

[Jenkins] Webhook 설정 – 콤텍시스템

Jenkins와 Github을 연동하기 위해 Github Access Token을 생성합니다.

www.comtec.kr

 

 

그리고 살~짝 다른 방법도 있었다.

이 방법 역시 제대로 되는것을 확인!

 

https://nirsa.tistory.com/301?category=962430 

 

[Jenkins] 젠킨스와 github webhook 연동하는 방법

젠킨스와 github webhook 연동하는 방법 jenkins와 github webhook을 이용한 연동 방법 입니다. 1) GitHub Intergration 플러그인 설치 jenkins 웹페이지에서 Jenkins 관리 → 플러그인 관리 → 설치 가능을..

nirsa.tistory.com