반응형

1. Jenkins 다운로드

 - http://jenkins-ci.org/ 가자마자 download war 버튼이 있다.

 

2. Jenkins 설치

 - 설치랄게 별로 없고, tomcat의 webapps에 넣어주면 바로 접근이 가능해짐.

 - jetty가 내장되어 있기 때문에, 명령어만으로 바로 띄울 수도 있는 것 같지만, 플러그인 목록이 가끔 안보이는 문제 등 불안정한듯.. yum repo등록 시 설치하는 방법도 마찬가지..  

 - 그래서 톰캣에 올리는 것을 추천한다.

 

3. Jenkins 세팅 

 - 플러그인 먼저 설치해준다. (Jenkins관리 - 플러그인 관리)

 - Git Plugin, Gerrit Trigger Plugin을 설치한다. (재시작 없이 설치하기를 권장) 

(그냥 Gerrit Plugin이 있는데 Gerrit Trigger Plugin의 예전 버전이며, deprecated 된 플러그인이라고 한다. 실제로 오류를 뿜음)

 - Jenkins관리 - 시스템 설정에 가서 SCM (여기서는 git), Maven, Jdk에 대한 설정을 해준다.

 

4. Gerrit Trigger Plugin 설정 (Jenkins관리 - Gerrit Trigger) 

 - 좌측의 Add New Server버튼을 눌러서, Gerrit Server를 등록해준다. 

 - 아래와 같은 화면이 나오는데, 회사 정보는 삭제하였다. 

  - Frontend URL에 1번 포스팅에서 proxy설정을 마친, apache url을 입력해준다.

  - username, email은 jenkins전용 계정을 생성해서 등록하는 것을 추천한다. (Gerrit의 Verify Label에 찍히게 될 계정이다) 

  - 모두 입력 후, Test Connection을 눌러서 제대로 연결이 되는지 확인한다.

 

5. Item 추가 (구버전에서는 Job이라고 불렀었다.)

  - 좌측 상단의 새로운 Item버튼을 누르고, 내가 Maven을 주로 사용하므로 이름을 대충 지어주고, Maven Project를 선택한다.

 

6. Item Configuration  

  - 소스코드 관리 항목에서 git 부분에 gerrit에 생성되어 있는 repo의 ssh 경로를 적어준다.

  - credential도 gerrit에서의 인증정보와 동일하게 설정 해준다. 

  - 빌드유발 항목에 보면, gerrit event항목을 볼 수 있는데, Gerrit에서 특정 이벤트(Trigger On에서 지정한)가 발생하면 이 Item을 실행하도록 설정이 가능하다. 

  - 다른 항목은 각자 프로젝트 환경에 맞게 설정하고, Trigger on항목은 Patchset Created로 지정하여, 바로 테스트를 진행해보자.

  - 저장하고, 일부로 PatchSet을 생성해서 하나 올려보도록 하자.

  - 설정이 완료된, Item을 실행시킨다. 

  - Gerrit의 Verified Label에 verify 점수가 등록되어 있으면 성공! 

 

7. Item Detail Configuration

  - 6번과 같이 설정하는 경우 잘되는것처럼 보이지만, 새로 생성된 patchset에 대해서 빌드를 수행하지 않고,

기존에 올라가있는 소스에 대한 빌드를 수행한다.

  - 이럴 경우, 소스코드 관리 항목에서 고급을 눌러서 Refspec에 origin/$GERRIT_REFSPEC 라고 입력해주고,

Branches to build에는 $GERRIT_BRANCH라고 입력해준다.  

  - Additional Behaviours에서도 Strategy for choosing what to build항목에서 Gerrit Trigger를 명시해주어야 한다. 

  - 이렇게 하면, 올라간 Patchset에 대해서 빌드를 해준다..  

  - 저렇게 환경변수로 지정을 해두면, Trigger돌면서 환경변수에 해당하는 것을 알아서 찾아서 돌려준다.

  - 추가로, Additional Behaviours에서 Wipe out repository & force clone을 추가 해준다. (이게 없으면 전에껄 clone해옴)

 

8. 7번 문제에 대한 해결

  - Gerrit Trigger가 2.12.0으로 업데이트가 되었음.

  - Gerrit Trigger Configuration에 Build Current Patches Only 이런 옵션이 생겼다!!

  - 정말 가장 최근 PatchSet 찾아서 잘 verify한다..

  - 그리고 가장 중요한... 아래 화면... (좌측은 Plain으로 설정해서 Repository명 써야하고, 오른쪽 Branches는 Path로 바꾸어 주어야 **이 먹는다.. (이거 가지고 이틀 삽질함;;;) 

  - 참고로, 수동으로 돌리려면 Item자체를 실행하는 것이 아니라, Query and Trigger Gerrit Patches 메뉴에서 실행해주어야 한다.

(그래야 현재 Open되어 있는, PatchSet, Branch에 대해서 제대로 찾는 것 같다.) 

 

이후 세부 설정 및 복잡한 처리 프로세스에 대해서는 더 연구가 필요하며,

정리되는대로 하나씩 올려나갈 예정이다. 

반응형
,