각 개발자들이 개인 빌드 과정을 거쳐 작성한 코드들을 통합하여 실행 가능한 산출물로 만들어 내는 일련의 과정을 통합 빌드라 하며 지속적이고 자동화된 통합을 위하여
CI를 사용하며 Continous Integration이란 여러 명으로 구성된 팀이 작업한 것을 자주-각 팀원이 하루에 한 번 이상, 매일 여러 번-통합하는 것을 가리키는 소프트웨어 개발 Practice를 말한다.
CI 효과와 특징
CI(Continuous Integration)는 개발자, 버전 관리 저장소, CI시스템, 빌드 스크립트, 의사소통 장치, 통합 빌드 머신 등으로 구성 된다.
CI 서버는 형상관리 서버로부터 개발자들이 commit 한 소스 코드를 check out 받아 CI 서버의 로컬 파일 시스템에 저장하고
그 코드를 바탕으로 빌드를 실행 후 동작하는 코드 산출물(WAR, JAR 등의 working 패키지)을 생성해 낸다.
Jenkins은 오픈 소스 CI 서버로 소스와 빌드 스크립트를 사용한 자동 빌드 및 빌드 결과를 개발자에게 피드백 하는 메커니즘을 제공한다.
Jenkins의 특징 및 주요 기능
1. jenkins.war을 다운로드 받는다.
Jenkins 다운로드
2. jenkins.zip 파일로 받은 파일의 확장자를 .war로 변경한다.
3. 톰캣의 webapp 디렉터리 밑에 다운 받은 jenkins.war 파일을 위치시킨다.
4. startup.bat 파일로 톰캣 서버를 구동시킨다.
- Configure System 메뉴를 통해 소프트웨어 빌드 작업 및 피드백 작업을 시작하기 위한 JDK 및 Ant, Maven 등의 인스톨 위치를 지정한다.
기본 설정으로 JDK, Maven, Ant, 빌드 결과 피드백 메커니즘 설정을 한다.
1. JDK Home 설정
2. Maven Home 설정
Maven 빌드를 위한 Maven Home 위치 지정
3. Ant Home 설정
Ant 작업 수행을 위한 Ant Home 위치 지정
4. 피드백 설정을 위한 E-mail Notification 설정
SMTP 서버, Hudson 시스템 Admin 이메일 주소, 설치된 Hudson의 URL
Jenkins은 기본 설정으로 빌드 스크립트를 이용해 생성한 JUnit 테스트 리포트를 브라우저에 출력해 주는 기능을 제공하고 있으며 테스트의 Progress 누적 그래프를 Jenkins 프로젝트의 초기 화면에 보여주는 기능을 제공한다.
Jenkins은 코드 인스펙션 도구인 PMD 플러그인을 제공하며 빌드 스크립트를 통해 수행한 PMD 결과 리포트를 PMD 플러그인 연동을 통해 Jenkins 화면에 보여주는 기능을 제공한다.
3.1 등록한 작업(프로젝트)의 이름 확인 및 프로젝트 요약 설명 작성한다.
3.2 프로젝트의 코드가 보관된 SCM(저장소)를 선정한다.
3.3 SCM 종류 선택 후 Jenkins 서버에 등록할 프로젝트가 저장된 저장소(repository) URL을 설정한다.
3.4 주기적 통합을 위한 자동 빌드 주기를 설정한다.
3.5 빌드를 설정한다.