이 문서는 Jenkins, Git, Ant Build를 이용하여 빌드 자동화 CI 서버 구축에 대한 예제를 다룹니다. 요즘 추세가 Maven이나 Git을 사용하고 있지만, 쉽게 개발 환경을 전환하지 못하는 조직이 많이 있어 SVN과 Git 연동에 대한 모두를 다루고자 합니다.
이 문서는 다음과 같이 3가지로 파트로 진행될 예정입니다.
Jenkins
Jenkins는 소프트웨어를 빌드하는 작업과 혹은 크론(cron)에 의해서 실행되는 반복 작업들을 실행하고 모니터링할 수 있게 해주는 솔루션입니다.
Jenkins는 Agile에서 말하는 프로젝트의 빌드와 테스트의 지속성을 위해 적절하게 사용됩니다. 즉 지속적인 통합 Continuous Integration을 위한 오픈소스 중 최적의 솔루션입니다. Agile Practice에서는 지속적인 통합은 생산성을 증가시켜준다고 말합니다. 실제적으로 시스템 통합에 많은 시간을 빼앗기는 프로젝트에서 유용하게 사용될 수 있습니다.
Jenkins의 주요 특징
쉬운 설치
일단 설치가 정말 간단합니다. 설치 파일을 받아서 실행하면, 끝입니다. 혹은 War파일을 다운로드 받아 서버에 배포해도 됩니다. 그러면 바로 시작할 수 있습니다.
쉬운 설정
Jenkins은 빌드 아이템에 대한 즉각적인 에러 확인과 화면 속에서 인라인 도움말을 제공합니다.
다양한 형상관리 시스템 연동
SVN, CVS, Git 등 대부분의 형상관리 시스템과 연동됩니다. 인증 정보만 입력하면 자동으로 체크아웃하여 코드를 받아올 수 있습니다.
영구링크
빌드 정보를 제공하는 영구 링크를 제공합니다. http://url/job/projectname/lastStableBuild 와 같이 최신 성공한 빌드 정보도 확인할 수 있습니다.
빌드자동보고
빌드에 대한 정보를 RSS/Email 등으로 실시간으로 받아 보고 모니터링할 수 있습니다.
테스트 연동 실행
Junit, TestNG 등과 연동하여 테스트 결과, 테스트 커버리지 등 테스트가 언제 실패했고 성공했는지에 대한 히스토리 정보를 제공합니다.
분산빌드
Jenkins는 여러 컴퓨터에서 분산 빌드/테스트를 실행할 수 있게 해줍니다. 빌드가 많아 성능 이슈가 있으면, 혹은 Cross 컴파일 환경이라면 분선 빌드를 통해 해결할 수 있습니다.
Jenkins 설치
윈도우용 Jenkins 설치 가이드는 다음 링크를 참조하시기 바랍니다.
- http://pseg.or.kr/pseg/infoinstall/4872
