Useful continuous integration tool - Jenkins 02. autobuild

해당 가이드는 Freestyle project기능으로 간단하게 자동으로 빌드되는 예제에 대한 가이드입니다.
자동 빌드는 시간별, commit별 등 다양하게 수정할 수 있어서 사용자가 매 번 확인을 하지 않더라도 빌드 에러 확인이 용이합니다. 또한 주기적은 형상이 있으므로 런타임 에러 추적이 용이합니다.
jenkins는 local뿐 아니라 인트라넷, 인터넷망으로도 활용 가능하므로 공동 작업을 할 때 개발자들이 공동된 형상을 볼 수 있기 때문에 공동 작업시 상당히 유용합니다.

프로젝트 생성

프로젝트 생성을 위해 http://localhost:8080/ 에 접속합니다.



New Item을 누른 후 Project 이름을 입력합니다.



 * Jenkins 내부적으로 폴더 이름이 되기 때문에 띄어쓰기는 쓰지 않는게 좋습니다.

1. General

오래된 빌드 버리기 등 일반적인 셋팅을 할 수 있습니다.
Jenkins plugin에 따라 메뉴가 추가될 수 있습니다.

Description에는 프로젝트의 설명을 간단하게 써줍니다.

저는 오래된 빌드를 자동으로 삭제하고 싶기 때문에 Discard old builds를 체크했습니다. 며칠 또는 몇개까지 유지하고 그 이상이 되면 마지막에 빌드된 결과물은 자동으로 삭제가 됩니다.

2. Source Code Management

git, svn, repo 등 소스 다운로드 형상을 관리하는 부분입니다.

예를들어 https://github.com/JusangMaeng/simplest-autotools.git 저장소를 다운받아봅시다. 저장소는 git이므로 git에 체크 후 url을 적어줍니다. 특정 branch나 tag도 지정이 가능합니다.




3. Build Triggers

빌드를 할 동작을 구현하는 부분 입니다.

git commit이 발생했을 때, 일정 주기 등 다양하게 설정을 할 수 있습니다.
일정 주기로 설정하는 방법을 예로들겠습니다.
형식은 5가지를 지정하게 되어있으며 각 자리는 아래와 같은 형식입니다.

분(0~59) | 시간(0~23) | 날짜(1~31) | 월(1~12) | 요일(0~6)
 ※ 요일은 0이 일요일이며 6이 토요일입니다.

기타
  H : hash에 등록하여 한가한 시간에 빌드
  * : 항상
  / : 간격
  - : 범위

예1) 매일 저녁 7시에 빌드
0 19 * * * (날짜,월,요일 항상 빌드 / 시,분 19시 고정)

예2) 평일 저녁7시에 빌드
0 19 * * 1-5 (날짜,월 항상 빌드 / 시,분 19시 고정 / 요일 월~금)

예3) 매일 새벽1시~2시 사이에 빌드
* 1-2 * * * (분,날짜,월,요일 항상 빌드 / 시간 1~2시 사이)

예4) 매일 한 번 빌드
* H * * * (분,날짜,월,요일 항상 빌드 / 시간 하루 1번 한가할 때)

예5) 3시간에 한 번 씩 빌드
* */3 * * * (분, 날짜, 월, 요일 항상 / 3시간에 한 번)


4. Build Environment

빌드 환경 관련 설정하는 부분 입니다. 빌드 시작 전 빌드폴더를 삭제, Jenkins에서 볼 수 있는 console 로그의 timestamp 표시 등을 설정할 수 있습니다.

Jenkins에서 빌드를 하게 되면 웹페이지에서 console로 빌드 되는 과정을 볼 수 있습니다. 이 console 창에 시간을 표시하기 위해 timestamp를 추가했습니다.




5. Build

빌드를 할 수 있는 부분입니다.


이 프로젝트에서 만드는 샘플 소스는 아래와 같은 구조입니다.

terminal에서 빌드는 아래와 같이 할 수 있습니다.
1
2
3
./autogen.sh
./configure --prefix=${PWD}/install
make install


이것을 그대로 jenkins에 옮겨놓으면 됩니다.
하나의 shell로 구성을 해도 됩니다.



6. Post-build Actions

빌드 후 처리하는 부분입니다. 빌드 결과물을 jenkins 폴더에 보관하거나, 빌드가 실패했을 때 e-mail로 알려주는 기능 등을 구성할 수 있습니다.

저는 make install을 할 폴더를 $WORK/install에 구성했기 때문에 install 하위 폴더를 모두 얻게 설정해놨습니다.

※참고 : **은 하위폴더 전체 입니다.


 E-mail 설정은 '03. jenkins e-mail 설정'을 참고해주세요.

빌드 결과

왼쪽에 '#4'와 같이 빌드가 완료된 번호가 표시됩니다. 해당 번호를 누르면 '6 Post-build Actions'에서 얻었던 빌드 결과를 얻어올 수 있습니다.





빌드 결과 2

'#4'를 누르면 아래와 같이 결과물을 얻어올 수 있는 창이 나옵니다.





빌드 결과 3

'Build Artifacts'를 누르면 zip파일로 한번에 다운받을 수 있습니다.









댓글