jenkins CI Server

myplace 2014. 9. 5. 23:14

무언가를 시작하기 전에 이에대해 자동으로 빌드 및 코드 품질을 검증하고자 CI서버를 구축하였다.
(자주 사용했던) 쉽게 구축 가능한 Jenkins CI Server와 사용하기 유용한 plugin들을 정리한다.


Continuous Integration 란?

'지속적인 통합' 
지속적으로 소스코드, 테스트 및 빌드를 자동화하여 변경사항이 정상적으로 통합되었음을 검증한다.
대표적으로 Jenkins(구 Hudson)이 있으며 이러한 자동화 및 검증과정을 도와준다.
CI를 적용할 경우 변경사항이 정상인지 여부를 시스템에서 자동으로 통합과정을 통해 검증해주며, 실패한경우 메일과 같은 noti 수단을 통해 통보받을 수 있다. 이를 통해 통합 실패에 대해 빠르게 발견할 수 있으며 에러원인분석 및 수정에 대한 비용을 감소시킬 수 있다.


Jenkins CI Server

download url : http://jenkins-ci.org/
대표적인 CI tool로 다양한 plugin을 통해 검증도구를 제공한다.
기존에는 Hudson이라는 이름으로 제공되었으나 Oracle에서 상표등록하여 이의를 제기하면서 Jenkins로 이름을 변경하였다.
기본적으로 계정관리 및 자동화된 빌드를 제공하며 플러그인 설치 및 적용을 통해 여러가지 분석 및 품질검증이 가능하다.


Plugins

[Jenkins관리 > 플러그인 관리] 메뉴에서 설치된 플러그인 및 설치가능한 플러그인을 확인할 수 있다.
이밖에도 *.hpi 파일을 업로드하여 사용자가 수동으로 플러그인 설치가 가능하다.
플러그인은 대부분 Jenkins 내에서 분석결과를 화면에 노출하는 기능을 제공하며, 이를 분석하는 tool을 수동으로 설치하고 Jenkins 관리에서 설정하거나 필요한 library를 추가해주어야 하는 경우가 많다.
아래는 내가 써 보았던 툴 중심으로 분류하였으며 이밖에도 Jenkins update center 의 설명을 보고 쉽게 플러그인이 제공하는 기능에 대해 파악 및 설치가 가능하다.

* SCM tool : Git, Subversion 등
* 정적코드 분석 tool : PMD, findbugs, klocwork, Sonar
* 중복코드 분석 tool : CPD (Dry plugin), Sonar
* Code Style Check tool : checkstyle
* Test Coverage tool : JaCoCo, Clover, Cobetur

* LoC Analysis tool : SLOCCount, CLOC, Sonar



참고자료 : 

Continues Integration with Hudson
http://doortts.tistory.com/entry/%EB%B2%88%EC%97%AD-%ED%86%B5%ED%95%A9-%ED%97%88%EB%93%9C%EC%8A%A8%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%A7%80%EC%86%8D%EC%A0%81%EC%9D%B8-%ED%86%B5%ED%95%A9-Continuous-integration-with-Hudson

'Hudson'에서 'Jenkins'로 변경된 이유
http://en.wikipedia.org/wiki/Hudson_(software)

'myplace' 카테고리의 다른 글

Static, Final Method Unit Test  (0) 2015.05.14
Maven test와 junit의 동작 차이 (@Ignore annotation이 다르게 동작해요)  (0) 2015.05.14
SonarQube  (0) 2014.09.06
Posted by dreamhopp
,