예전 저의 티스토리 조회수 top3 글 중 하나를 옮겨보았습니다.
원본 : https://nowod.tistory.com/10
2018년 글이기 때문에 현재와 많은 차이가 있을 수 있습니다.
Jenkins와 GitLab 연동
(기준: Jenkins-2.132, GitLab-11.0.3)
- Jenkins에서 GitLab 관련 플러그인을 설치한다.
- GitLab에서 User 설정 -> Access Tokens 으로 들어가 Name과 Expires at을 설정한다.
- Jenkins에서 Credentials를 만든다. GitLab API Token을 만든다. Token에는 아까 GitLab에서 만든 Token을 넣어준다.
- Jenkins관리 -> 시스템 설정으로 들어간다.
- GitLab 탭에서 Connection name(아무거나), host URL (https://gitlab.com <- 이걸로!) credentials는 아까 만든걸 넣어준다.
- Jenkins 프로젝트 만든다 (freestyle)
- 구성에 들어간다. -> gitlab connection에 방금 만든 connection name이 들어가 있다.
- 소스 코드 관리에 git을 클릭한다. url에 gitlab에서 만든 프로젝트 url을 넣어준다. Credentials는 새로 하나 만든다. (Username with Password)로 gitlab 정보 넣어준다.
- 빌드 유발에 Build when a change is pushed to Gitlab 클릭한다. 고급에 secret token을 생성한다.
- 다시 Gitlab으로 돌아간다. setting -> integrations 에서 webhooks를 설정한다. URL은 URL은 http://호스트/project/작업이름 SecretToken은 아까 Jenkins에서 만든 Secret token을 넣어준다. (이때 테스트 시 404에러가 나는 경우 jenkins 아이디 비번을 URL에 추가한다. ex ) http://ID:PWD@호스트/project/작업이름)
- 만약 gitLab과 jenkins가 같은 로컬서버에 설치된 경우 gitLab에서 root계정으로 접속하여 admin area에서 setting-> outboundRequest에서 Allow requests to the local network from hooks and services설정을 체크해주어야 정상적으로 Webhook이 동작한다.
- 다시 jenkins로 돌아가 설정을 마무리한다. Build부분에는 자신이 사용할 sh를 설정하고 빌드 후 조치에 Build_name을 입력하고 저장한다.
- gitLab에서 push event를 해본다.
- 자동으로 빌드되면 성공