Version Control/Git

GitLab 과 Jenkins CI 연동하기

후뤼한잉여 2015. 11. 22. 00:28

GitLab 과 Jenkins CI 연동하기

1) 개요

GitLab의 프로젝트의 CI를 Jenkins로 연동해서 나중에 사용할 수 있도록 테스트 삼아 설정한 내용을 정리한 문서입니다.

2) 사전 준비

  1. Git 설치하기

    CentOS 7 에서 Git Server 설치하기 참고하여 설치 진행

  2. 컴파일용 JDK 설치하기

    CentOS 7 에서 Oracle JDK 설치하기 참고하여 설치 진행

  3. GitLab에서 젠키스와 연동할 jenkins 계정 생성

  4. GitLab에 젠킨스 계정 로그인

  5. [ProfileSettings] 메뉴 클릭

  6. [Account] 메뉴 클릭
  7. Private token 값을 복사 해놓거나 이 위치를 기억 해 둔다.

    3) 기본 연동 설정하기

  8. [Jenkins 관리] 메뉴 클릭 하기
  9. [플러그인 관리] 메뉴 클릭 하기
  10. [설치가능] 탭을 클릭하고 필요한 플러그인 설치하기
    저는 이미 설치가 되어있어서 화면 첨부는 못 했습니다.

    • GIT Plugin : Git 사용 위한 플러그인
    • GitLab Plugin : GitLab 연동 위한 플러그인
    • embeddable-build-status : 빌드 상태를 마크다운 문서등에 아이콘으로 표시하기 위한 플러그인
    • [재시작 없이 설치하기] 나 [지금 다운로드하고 재시작 후 설치하기] 중 원하는 대로 설치 진행
  11. SSH 접속을 위한 SSH-Key 생성

     mkdir [젠킨스 계정 홈 디렉토리]/.ssh //젠킨스 설치때 사용한 계정 또는 /var/lib/jenkins를 사용한다.
     cd [젠킨스 계정 홈 디렉토리]/.ssh
     sudo -u [젠킨스 계정] ssh-keygen -t rsa -C "구분값"
    
  12. [Jenkins 관리] 메뉴 클릭 후 [Manage Credentials] 메뉴 클릭

  13. [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 선택
  14. [Save] 버튼을 클릭하여 설정을 저장한다.

  15. [Jenkins 관리] 메뉴 클릭 후 [시스템 설정] 메뉴 클릭

  16. JDK, Git가 설치된 위치를 지정 해 준다.

    • 빌드를 위한 Ant, Maven 등의 툴을 사용한다면 관련 툴에 대한 세팅도 해줘야 한다.
    • 아직 잉여라 Ant만 조금 써보고 Maven은 써보지 못 했고, 대세는 Gradle이라고 하니 나중에 빌드 툴은 Gradle로 구성을 위해 빌드 툴 설정은 안했다. (사실 빌드 툴을 제대로 써본게 없어서…ㅜㅜ)
  17. GitLab 연동 관련 부분을 설정 해 준다.

    • GitLab host URL에는 GitLab 사이트 주소를 작성 해준다.
    • API Token 부분에 위에서 복사해둔 Private token을 입력 한다.
    • [Test Connection] 버튼을 클릭하여 연동이 잘 되었는지 확인 한다.
  18. [저장] 버튼을 클릭하여 기본 연동 설정을 저장 한다.

4) 프로젝트 연동하기

  1. GitLab 설정하기
    1. GitLab 로그인 후 Jenkins와 연동할 프로젝트를 클릭 한다.
    2. [Settings] 메뉴 클릭
    3. [DeployKeys] 메뉴 클릭
    4. [NEW DEPLOY KEY] 버튼 클릭
    5. ssh키 추가 후 [CREATE] 버튼 클릭
      • [젠킨스 홈 디렉토리]/.ssh/id_rsa.pub 파일의 내용을 추가 해준다.
  2. Jenkins Project 설정하기
    1. Jenkins 메인 화면에서 [새로운 Item] 메뉴 클릭
    2. Item 이름입력 후 Freestyle project 선택 하고 [OK] 버튼 클릭
    3. 소스 코드 관리 부분 설정
      • Repository URL은 GitLab에서 Clone하는 프로젝트 주소를 입력 해준다.
      • Credentials는 아까 설정한 Credentials 계정을 선택 한다.
      • Repository browser는 gitlab을 선택 한다.
      • URL은 Jenkins Item과 연동할 GitLab의 Project주소를 입력한다.
      • Version은 관리할려는 버전을 입력하면 되는 듯 함. (즉, 아무렇게나…)
    4. 빌드 유발 부분 설정 후 [저장] 버튼 클릭
      • Build when a change is pushed to GiLab. GitLab CI Service URL: [젠킨스주소]/project/[Item명] 를 체크 한다.
      • GitLab 버전에 따라 Use GitLab CI features(GitLab 8.1 required!)를 체크 한다.
  3. GitLab에 WebHoks 등록하기

    1. GitLab 로그인 후 Jenkins와 연동할 프로젝트를 클릭 한다.
    2. [Settings] 메뉴 클릭
    3. [Web Hooks] 메뉴 클릭
    4. Hook 설정을 입력 후 [ADD WEB HOOK]버튼을 클릭 한다.

      • URL에는 젠킨스에서 설정시 체크박스 옆에 있던 주소인 [젠킨스주소]/project/[Item명]를 입력 한다.
      • 젠킨스를 HTTPS로 사용할 때 인증된 인증서 사용하지 않는 경우 Enable SSL verification 체크를 해제 해준다.
    5. [TEST HOOK] 버튼을 클릭하여 잘 동작하는지 확인 해본다.

  • Emebeddable Build Status 메뉴를 이용하면 빌드 상태를 마크로 볼 수 있다.