GitLab 과 Jenkins CI 연동하기
1) 개요
GitLab의 프로젝트의 CI를 Jenkins로 연동해서 나중에 사용할 수 있도록 테스트 삼아 설정한 내용을 정리한 문서입니다.
2) 사전 준비
- Git 설치하기
CentOS 7 에서 Git Server 설치하기 참고하여 설치 진행
- 컴파일용 JDK 설치하기
CentOS 7 에서 Oracle JDK 설치하기 참고하여 설치 진행
GitLab에서 젠키스와 연동할
jenkins
계정 생성GitLab에 젠킨스 계정 로그인
[ProfileSettings] 메뉴 클릭
- [Account] 메뉴 클릭
Private token
값을 복사 해놓거나 이 위치를 기억 해 둔다.3) 기본 연동 설정하기
- [Jenkins 관리] 메뉴 클릭 하기
- [플러그인 관리] 메뉴 클릭 하기
[설치가능] 탭을 클릭하고 필요한 플러그인 설치하기
저는 이미 설치가 되어있어서 화면 첨부는 못 했습니다.- GIT Plugin : Git 사용 위한 플러그인
- GitLab Plugin : GitLab 연동 위한 플러그인
- embeddable-build-status : 빌드 상태를 마크다운 문서등에 아이콘으로 표시하기 위한 플러그인
- [재시작 없이 설치하기] 나 [지금 다운로드하고 재시작 후 설치하기] 중 원하는 대로 설치 진행
SSH 접속을 위한 SSH-Key 생성
mkdir [젠킨스 계정 홈 디렉토리]/.ssh //젠킨스 설치때 사용한 계정 또는 /var/lib/jenkins를 사용한다. cd [젠킨스 계정 홈 디렉토리]/.ssh sudo -u [젠킨스 계정] ssh-keygen -t rsa -C "구분값"
[Jenkins 관리] 메뉴 클릭 후 [Manage Credentials] 메뉴 클릭
[Add Credentials] 클릭 후 [SSH Username with private key]를 선택 한다.
- Scope :
Global(Jenkins, nodes, items, all child items, etc)
선택 - Username :
[Jenkins 계정]
- Private Key :
From the Jenkins master ~/.ssh
선택
- Scope :
[Save] 버튼을 클릭하여 설정을 저장한다.
[Jenkins 관리] 메뉴 클릭 후 [시스템 설정] 메뉴 클릭
JDK, Git가 설치된 위치를 지정 해 준다.
- 빌드를 위한 Ant, Maven 등의 툴을 사용한다면 관련 툴에 대한 세팅도 해줘야 한다.
- 아직 잉여라 Ant만 조금 써보고 Maven은 써보지 못 했고, 대세는 Gradle이라고 하니 나중에 빌드 툴은 Gradle로 구성을 위해 빌드 툴 설정은 안했다. (사실 빌드 툴을 제대로 써본게 없어서…ㅜㅜ)
GitLab 연동 관련 부분을 설정 해 준다.
- GitLab host URL에는 GitLab 사이트 주소를 작성 해준다.
- API Token 부분에 위에서 복사해둔
Private token
을 입력 한다. - [Test Connection] 버튼을 클릭하여 연동이 잘 되었는지 확인 한다.
[저장] 버튼을 클릭하여 기본 연동 설정을 저장 한다.
4) 프로젝트 연동하기
- GitLab 설정하기
- GitLab 로그인 후 Jenkins와 연동할 프로젝트를 클릭 한다.
- [Settings] 메뉴 클릭
- [DeployKeys] 메뉴 클릭
- [NEW DEPLOY KEY] 버튼 클릭
- ssh키 추가 후 [CREATE] 버튼 클릭
- [젠킨스 홈 디렉토리]/.ssh/id_rsa.pub 파일의 내용을 추가 해준다.
- [젠킨스 홈 디렉토리]/.ssh/id_rsa.pub 파일의 내용을 추가 해준다.
- Jenkins Project 설정하기
- Jenkins 메인 화면에서 [새로운 Item] 메뉴 클릭
Item 이름
입력 후Freestyle project
선택 하고 [OK] 버튼 클릭소스 코드 관리
부분 설정- Repository URL은 GitLab에서 Clone하는 프로젝트 주소를 입력 해준다.
- Credentials는 아까 설정한 Credentials 계정을 선택 한다.
- Repository browser는
gitlab
을 선택 한다. - URL은 Jenkins Item과 연동할 GitLab의 Project주소를 입력한다.
- Version은 관리할려는 버전을 입력하면 되는 듯 함. (즉, 아무렇게나…)
빌드 유발
부분 설정 후 [저장] 버튼 클릭Build when a change is pushed to GiLab. GitLab CI Service URL: [젠킨스주소]/project/[Item명]
를 체크 한다.- GitLab 버전에 따라 Use GitLab CI features(GitLab 8.1 required!)를 체크 한다.
- Jenkins 메인 화면에서 [새로운 Item] 메뉴 클릭
GitLab에 WebHoks 등록하기
- GitLab 로그인 후 Jenkins와 연동할 프로젝트를 클릭 한다.
- [Settings] 메뉴 클릭
- [Web Hooks] 메뉴 클릭
Hook 설정을 입력 후 [ADD WEB HOOK]버튼을 클릭 한다.
- URL에는 젠킨스에서 설정시 체크박스 옆에 있던 주소인
[젠킨스주소]/project/[Item명]
를 입력 한다. - 젠킨스를 HTTPS로 사용할 때 인증된 인증서 사용하지 않는 경우
Enable SSL verification
체크를 해제 해준다.
- URL에는 젠킨스에서 설정시 체크박스 옆에 있던 주소인
[TEST HOOK] 버튼을 클릭하여 잘 동작하는지 확인 해본다.
- Emebeddable Build Status 메뉴를 이용하면 빌드 상태를 마크로 볼 수 있다.
'Version Control > Git' 카테고리의 다른 글
GitLab과 Mylyn Plugin 연동하기 (0) | 2015.11.22 |
---|---|
Git 한 프로젝트에서 GitLab과 GitHub 원격 저장소 동시에 사용 하기 (0) | 2015.11.22 |
GitLab과 Slack 연동하기 (0) | 2015.11.21 |
GitLab에 GitHub 레파지토리 Import 하기 (0) | 2015.11.21 |
GitLab에 HTTPS 보안 적용을 위한 OpenSSL 설정하기 (0) | 2015.11.10 |