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

[jenkins] gitlab 과 jenkins webhook 으로 자동빌드 연결

by demonic_ 2019. 9. 25.
반응형

인터넷을 찾아보면 권한 등록이 크게 2개로 구분되는거 같다.

1. Gitlab 에 User Setting 에서 Access Token 을 생성해 jenkins에 등록하여 인증하는 방법

2. Jenkins 에서 만든 Item 에서 Secret Token 을 생성해 Gitlab 프로젝트 내 Integrations 에 등록하여 인증하는 방법

내 경우 1번방법은 되지 않아서 2번방법으로 등록하여 성공했다.

 

 

 

# Jenkins 에 관련 플러그인 설치

Jenkins 관리 > 플러그인 관리 로 이동한다

GitLab Plugin, GitLab Hook Plugin 을 설치한다.(목록에서 보이지 않으면 '설치 가능' 탭을 클릭한다음 gitlab으로 검색한다)

 

 

# Jenkins 에 새로운 Item 등록

소스코드 관리에는 Gitlab 에 등록된 프로젝트를 연결한다.

Credentials 등록 방법은 아래 포스팅 참조

https://lemontia.tistory.com/660

 

[SpringBoot] Jenkins, SpringBoot, Gradle 사용 Jar로 빌드, 배포

서버에 Git, Gradle, JAVA 등이 설치 되어있어야 합니다. 리눅스에 Gradle이 설치되어 있지 않다면 아래 포스트를 참조하세요. [Lunux] gradle 4.x 설치 http://lemontia.tistory.com/657 작업순서는 다음과 같습..

lemontia.tistory.com

다음과 같이 등록한다.

 

 

다음 빌드 유발을 설정한다

Build when a change is pushed to GitLab ... 으로 시작하는 것을 체크한다.

그 라인에 보면 URL이 적혀있는데 해당 URL을 복사한다.

그리고 아래를 보면 '고급'버튼이 있는데, 클릭하면 창이 더 확장되고 끝부분에 Secret token 이라고 쓰여있는 부분이 있다.

그 아래 Generate 버튼을 눌러 키를 생성하고 복사해둔다.

 

 

다음 Build 와 빌드 후 조치를 상황에 맞게 등록한다.

 



저장한다.

 

 

# GitLab 에서 설정

프로젝트를 들어가면 왼쪽에 Settings > Integrations 를 클릭한다

아래 화면에서 URL 과 Secret Token 을 위에서 복사한 값으로 채워넣은 후 Save changes 로 저장한다.

 

 

스크롤을 중간쯤 내려보면 Webhooks 에 등록되어 있는 것을 확인할 수 있다.

우측에 Test 를 클릭하면 목록이 뜨는데 그중에 Push events 를 클릭하면 테스트를 전송한다.

 

성공하면 다음과 같은 메세지가 나온다.

 

 

이제 해당 프로젝트를 커밋해보고 결과를 확인해보면 된다.

끝.

 

 

?) 실패할 경우

404 에러 => URL이 잘못되었음을 의미

Jenkins 에서 빌드 유발 창에서

체크박스 중 Build when a change is pushed to GitLab. GitLab webhook ... 에 있던 URL로 GitLab 의 Settings > Integrations 에 URL을 등록 했는지 확인.

403 에러 => 접근권한이 없다는 의미

GitLab 의 Settings > Integrations 정보 중 SecretToken 을 등록했는지 확인

 

 

 

?) 특정 브런치 이름만 자동빌드 하고 싶은 경우

gitlab 에 push events를 보면 입력창이 있는데, 여기에 지정하고 싶은 브런치명을 등록하면 된다.

 

 

 

 

참고사이트:

https://valuefactory.tistory.com/340

http://egloos.zum.com/mcchae/v/11246199

https://dejavuqa.tistory.com/143

 

반응형

댓글