continuous integration 준비

Continuous integration 관련해서 이론적으로만 계속 보다가 이번 프로젝트에 직접 적용해 보기로 했습니다. 역시 이론과 실제는 많이 다르다는 것을 느끼며...

첫번째로 부딪힌 부분이 자동으로 build와 test를 수행하도록 구성하는 부분입니다.
일단 디렉토리 구성과 환경변수 설정 부분에서 추가 작업을 하고 소스 구조를 다음과 같이 수정 했습니다.

src/java/소스
           /운영용 property
    /test/테스트 소스
          /테스트용 property

이렇게 한 다음 ant script에 테스트용 클래스를 따로 build 하도록 했습니다.
그리고 ant내에 전체 TestCase를 수행할 수 있는 task를 추가합니다. test task 수행전에 관련 클래스에 대한 빌드가 되도록 구성합니다.
다음은 CI 도구 설정. CI 도구는 주기적으로 build를 수행시키고 build에 대한 수행 결과를 리포팅하는 기능을 수행합니다. crontab에 설정해도 되지만 그래도 몇가지 부가 기능을 제공하기 때문에 CI 도구를 사용하는 것이 더 좋을 것 같아서 CI 도구를 사용하기로 했습니다. CI 도구는 hudson을 이용하였습니다. 아파치에서도 많이 사용하고 있는 것 같아서 그냥 아무 생각없이 선택했습니다. 설치는 정말 간단하더군요...
hudson.war 파일 다운로드 받은후 다음과 같이 수행하면 됩니다.

java -jar hudson.war

환경설정은 웹에서 http://localhost:8080 라고 치면 관리자 화면이 나타납니다.

사용자 삽입 이미지


job 등록하면 자동으로 build를 수행시킵니다. 여기서 조금 헤맸던 부분이 hudson이 어떤 디렉토리로 소스를 받아 build를 어떤 디렉토리에서 수행하는 거 였습니다.(아래 화면에서 "Local module directory" 값)
사용자 삽입 이미지
아무 값도 설정하지 않으면 husdon을 수행시킨 사용자의 home 디렉토리에 ".hudson/jobs" 디렉토리 아래에서 모든 작업이 수행됩니다. 일단 여기까지 구성했습니다. 이제 TestCase만 계속해서 추가하는 일만 남았습니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


Trackback URL : http://www.jaso.co.kr/trackback/237

Comments List

  1. 김훈민 2008/03/29 10:04 # M/D Reply Permalink

    Hudson은 현재 사용중이긴 한데, 적극적으로 활용하기가 만만치 않더군요... 무엇보다 규모가 있는 프로젝트가 아니다보니 배보다 배꼽이 더 큰 느낌도 듭니다. 하지만 파란 신호를 받았을 때는 너무 기쁘더라구요^^

Leave a comment
« Previous : 1 : ... 191 : 192 : 193 : 194 : 195 : 196 : 197 : 198 : 199 : ... 388 : Next »