[Jenkins] 젠킨스의 개요
프로젝트 초기에 구성했던 젠킨스에 관련해서 간단하게 정리해봅니다.
젠킨스를 왜 선택하게 되었고,
어떻게 구성 하였으며,
얼마나 업무 효율이 향상되었는지
프로젝트를 진행하다 보면, 실무적으로 지속적으로 문의오는 내용이 있습니다.
혹시.. 지금 빌드를 뽑아주실 수 있나요?
현재 적용되어 있는 빌드가 최신 버전인가요?
빌드 뽑는데 오래 걸릴까요? 바로 배포 가능하신가요?
일례적인 사례지만, 더 많은 업무요청이 있을 것으로 여겨집니다.
형상관리 시스템 ( Git, SVN ) 을 사용하고 있었기에, 지속적으로 빌드를 생산해주고, 현재 커밋되어진 내용들에 오류가 있지 않은지 지속적으로 판단하기 위해
CI 시스템을 구축해야 겠다고 생각했습니다.
그 중 오픈소스이며, 가장 많이 사용되고 있는 젠킨스를 선택하게 되었으며,
현재 프로젝트가 웹서버로 구성되고 있기 때문에, 빌드 이후 배포까지 처리하기 위해 적합하다고 판단하여 젠킨스를 도입하였습니다.
젠킨스 개요
Jenkins는 Agile의 창시자 중 한명인 마틴 파울러씨가 주장한 지속적 통합 ( CI : Continuous Integration )을 구현하기 위한 자바 오픈 소스 소프트웨어입니다. 웹 어플리케이션 형태를 하고 있으며, 국내에서는 허드슨 (Hudson) 이라는 이름으로도 알려져 있습니다.
2010년 오라클과의 상표권 문제로 인해 Jenkins로 이름이 바뀌게 되었습니다.
CI (Continuous Integration) 란 무엇인가?
지속적 통합이라는 뜻으로 형상관리 시스템 (SVN or Git) 에 있는 Source 파일을 읽어들여 자동으로 빌드하여 실행할 수 있는 결과물 형태로 주기적으로 생산해주는 시스템
Jenkins가 제공하는 기능에는
- 웹 인터페이스를 통한 간편한 설정
- 강력하고 편리한 레포팅 기능
- 지속적인 자동화 빌드
- 지속적인 자동화 테스트
- 커버리지 감시
- 코드 품질 감시
- 다양한 인증기반과 결합한 인증 및 권한 관리 기능
- Groovy Script 를 이용한 고수준의 잡 스케쥴링 기능
- 커맨드라인 인터페이스 제공
- 자동화된 배포 관리
- 분산 빌드 가능
- 윈도우 커멘드 스케쥴링 실행기능
이 있다고 합니다. (출처 : More Agile)
저희가 프로젝트에 Jenkins를 도입하려 했던 이유는
지속적인 자동화 빌드
자동화된 배포 관리
윈도우 커맨드 스케쥴링 실행 가능
위 세가지 이유로 인해서 젠킨스를 도입하였습니다.
'CI' 카테고리의 다른 글
[Jenkins] 젠킨스 MSBuild 셋팅 (0) | 2019.12.10 |
---|---|
[MSBuild] XML 을 이용한 Build (0) | 2019.12.10 |
[MSBuild] MSBuild를 이용한 프로젝트 빌드 (0) | 2019.12.09 |
[MSBuild] MSBuild 를 이용한 Package 시 XML 파일 포함 시키는 법 (0) | 2019.06.28 |
[Jenkins] 젠킨스 Windows 설치 (0) | 2018.10.11 |