IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  자바  >

지속적 통합으로 조기에 결함 발견하기 (한글)

최신 CI 환경 만들기에 대한 완벽한 안내서

developerWorks
Go to the previous page15 페이지 중 8 페이지Go to the next page

문서 옵션

제안 및 의견
피드백

튜토리얼 평가

이 컨텐츠를 개선하기 위한 도움을 주십시오.


허드슨

성공적인 CI 프로세스의 마지막은 CI 서버 자체다. 전체 개발 프로세스에 있어 CI 서버의 주 역할은 디렉터다. 서버는 코드 저장소에서 변화를 감지했을 때 빌드 프로세스를 실행한다. 빌드가 실패하면 CI 서버는 이를 즉각 알리고 변경 사항이 또 생기는지 저장소를 다시 모니터한다. 이 역할은 소극적으로 보이지만 문제가 발생했을 때 신속히 알려줄 수 있도록 해 준다.

허드슨 설치하기

허드슨을 사용하는 장점 중 하나는 간단히 설정할 수 있다는 것이다. 허드슨을 설치하는 데는 최소 두 단계가 필요하다.

  1. 최신 버전을 다운로드한다(WAR 파일로 번들된다).
  2. java -jar hudson.war를 작동한다.

이게 다다. WAR 파일을 다운로드하면 되기 때문에 원한다면 무료로 톰캣(Tomcat)이나 JBoss 같은 컨테이너에 배치할 수 있다. 선택은 독자들의 몫이다. 물론 허드슨을 설치하려면 자바 5가 작동되고 있어야 한다. 허드슨은 정의된 JAVA_HOME 환경 변수를 사용할 것이다 (앞에서 언급했듯이 허드슨은 자바 5를 요구한다).

허드슨을 설치하고 실행하고 나면(war 파일을 서블릿 컨테이너에 배치하거나 명령행에서 java -jar hudson.war를 치거나 하여) 브라우저를 실행하고 설치 초기 위치로 이동한다. 명령행으로 허드슨을 실행하고 로컬 머신에 있다면 http://localhost:8080/로 접속할 수 있다.


그림 2. 설치 완료된 허드슨
허드슨 시작 페이지

모든 것이 성공했다면(여기서 실패하긴 힘들다) 그림 2에서 볼 수 있는 허드슨 시작 페이지를 볼 수 있어야 한다.




위로


허드슨 설정하기

허드슨을 설정하는 첫 단계는 빌드 플랫폼 실행 파일을 어디서 찾을 수 있는지 알게 하는 것이다. 이 예에서는 앤트를 빌드 시스템으로 정의했으므로 로컬 머신의 어디에서 앤트를 찾을 수 있는지 허드슨에 알려줘야 한다. 메이븐을 사용해도 방법은똑같다. 메이븐 실행 파일이 어디에 있는지를 허드슨에 설정해야 한다. 중요한 것은 빌드 파일이 어디에 있는지 알려줄 필요가 있는 게 아니고 실행 파일을 어디서 찾을 수 있는지 알려줌으로써 허드슨이 빌드 파일을 호출할 수 있게 해야 한다. 이 예에서 허드슨이 어디서 앤트 명령을 찾을 수 있는지 알려줌으로써 ant -f build.xml 명령을 내릴 수 있게 해야 한다.

허드슨 홈페이지의 로컬 인스턴스로 가서 상단 왼편에 있는 Manage Hudson 링크를 클릭하면 그림 3에서 볼 수 있는 것처럼 설정 가능한 옵션 목록이 보일 것이다.


그림 3. 허드슨을 설정하는 것은 생각보다 쉽다.
허드슨 관리 페이지의 설정 옵션

앤트 부분에서 그림 4처럼 앤트가 설치된 경로를 제공해야 한다.


그림 4. 허드슨에 앤트가 어디 있는지 알려주기
허드슨에 앤트가 어디 있는지 알려주기

서버의 다른 몇 가지 것도 설정할 수 있다. 예를 들어 허드슨에 이메일 서버를 알려주면 빌드가 실패했을 때 이메일로 그 사실을 통보 받을 수 있다. 조직에서 이메일이 어떻게 설정됐는지에 따라 시스템 관리자와 협업해야 할 수도 있다. 이메일을 설정할 필요는 없다. 허드슨은 또한 이메일보다 덜 두드러진 RSS를 공지 메커니즘으로 지원한다. 어떤 통지 메커니짐을 쓸지는 독자들에게 달렸다(원하는 만큼 설정할 수 있음에 주목하자!).

마지막으로 프로젝트를 설정하기 전에 허드슨이 특정 SCM에 명령할 수 있도록 설정해야 한다. 이 경우 서브버전 저장소의 경로와 협업에 필요한 크레덴셜을 허드슨에 알려줘야 한다.

간단히 브라우저에 http://localhost:8080/scm/SubversionSCM/enterCredential을 치고 적절한 크레덴셜(예를 들어 buildmaster 등)과 함께 프로젝트의 저장소 URL을 지정한다. 이 일회성 단계를 통해 허드슨이 서브버전과 올바로 통신할 수 있음을 입증할 것이다(물론 또 다른 서브버전 저장소를 다른 URL에서 알려주고자 한다면 이 단계를 다시 행해야 한다).




위로


허드슨에서 프로젝트 설정하기

허드슨이 SCM 저장소에 명령하도록 제대로 설정했다. 이제 프로젝트를 설정할 차례다. 이 예를 위한 프로젝트를 solar-ci라 부르므로 허드슨 홈페이지에서 좌측 상단의 New Job 링크를 클릭한다. 그림 5와 같은 화면을 볼 수 있다.


그림 5. 허드슨에서 작업 설정하기
허드슨에서 작업 설정하기

작업에 이름을 붙이고(이 예에서는 Solar Project) Build a free-style software project 옵션을 선택한다. 메이븐 2 사용자라면 프로젝트 설정 파일을 기반으로 허드슨이 신속히 프로젝트를 설정할 수 있음을 볼 수 있을 것이다.

프로젝트 세부사항

OK를 클릭하면 다음과 같은 내용을 지정할 수 있는 프로젝트 설정 화면이 나타날 것이다.

  • 연결할 SCM
  • 얼마나 자주 프로젝트를 만들지
  • 어떤 빌드 플랫폼을 부를지 (앤트, 메이븐 등)

또한 이메일 보내기나 관련 자산 내보내기 같은 빌드 이후의 동작을 설정할 수 있다. 그림 6에서 볼 수 있는 옵션은 설명이 필요없다. 허드슨에서 CI 프로젝트를 설정하는 것은 굉장히 쉽다.


그림 6. 허드슨에서 프로젝트 세부사항 설정하기
허드슨에서 프로젝트 세부사항 설정하기

이 프로젝트에서는 최소한 프로젝트 URL을 지정해야 하는 서브버전 옵션을 선택해야 한다.

검사 예약하기

Build Trigger 섹션에 몇 가지 옵션이 있음을 볼 수 있다. 허드슨이 변화를 찾기 위해 SCM을 얼마나 자주 확인할지 예약하는 데 Poll SCM 옵션이 매우 유용하겠다. 만드는 예약은 필요에 따라 다르다. 많은 인력으로 변화를 자주 확인한다면 폴링을 자주 하고자 할 것이다(5분마다라고 하자).

그러므로 Poll SCM 옵션을 선택하고 스케쥴 상자에서 * * * * *를 쳐 넣는다. 이는 허드슨이 1분마다 폴링하라는 명령이다. 이렇게 하면 보여주는 목적으로는 안성맞춤인데(SCM에 변화가 발생한 후 많이 기다릴 것 없으므로) 일단 이 프로세스에 익숙해지면 더 논리적인 무언가를 지정해주는 것을 잊지 말자. 크론 탭을 설정하는 더 상세한 내역을 위해 물음표 아이콘(?)을 클릭하자.

JUnit 테스트 트렌딩 설정하기

Build 부분에서 Invoke Ant 옵션을 선택하고 이전에 설정한 앤트 버전을 선택한 후 정의된 빌드에서 어떤 타겟 또는 타겟들을 실행할지 허드슨에 명령한다. 지금은 허드슨에 테스트 타겟을 실행하라는 명령밖에 내릴 수 없다. 이 타겟이 모든 소스 파일을 컴파일하고, 정의된 JUnit 테스트를 실행함을 기억할 것이다.

Post-Build Action 부분에서 Publish JUnit test result report 옵션을 선택한다. 허드슨이 앤트를 통해 작동할 때 JUnit이 생산하는 XML 파일을 찾을 수 있는 위치를 지정해야 함을 알 수 있을 것이다. 서브버전에서 주어진 프로젝트 이름이 solar-ci고 빌드 파일이 이들 리포트를 직접 target/test-reports에 작성하도록 설정하면 그림 7처럼 solar-ci/target/test-reports/*.xml을 넣어야 한다:


그림 7. 허드슨으로 JUnit 트렌딩 구성하기
허드슨으로 JUnit 트렌딩 설정

Save를 클릭하면 끝난다.

프로젝트 홈페이지

그림 8에서 볼 수 있듯이 허드슨은 구성 수정, 강제 빌드, 프로젝트 자산과 관련된 세부 사항 변화 보기 등 옵션이 있는 프로젝트 홈페이지를 보여준다. 다음 절에서는 이 옵션들을 사용하여 소프트웨어 프로젝트의 상세내용을 다룰 수 있게 될 것이다.


그림 8. 허드슨에서 CI 프로젝트 홈페이지
허드슨에서 CI 프로젝트 홈페이지



위로



Go to the previous page15 페이지 중 8 페이지Go to the next page
    IBM 소개 개인정보 보호정책 문의