인터넷을 찾아보면 권한 등록이 크게 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
다음과 같이 등록한다.
다음 빌드 유발을 설정한다
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
'공부 > 프로그래밍' 카테고리의 다른 글
[java] List<map> 형태 정렬하기(lambda 이용) (0) | 2019.10.12 |
---|---|
[Springboot] spring bean과 싱글톤(singleton) (0) | 2019.10.01 |
[aws] DMS(Database Migration Service) 이용시 주의사항 (5) | 2019.09.24 |
[gradle] build 실패(No cached version of available for offline mode) (0) | 2019.08.27 |
[jenkins] Execute Shell 에서 프로세스 이름으로 프로세스 kill 하기 (0) | 2019.08.22 |
댓글