 |
|
SCM도 아니고 CI도 아니다
신뢰성 있는 빌드 프로세스 다음으로 CI 프로세스에서 필요한 것은 SCM 저장소다. 시장에는 오픈 소스부터 상용소스까지 다양한 SCM 저장소가 있다. 이것들은 모두 소스코드 자산을 관리하는 것이 기본 목표다. SCM 시스템에서 소스코드 버전화와 히스토리 관리 — 많은 인력이 같은 파일을 작업할 때 모두 중요하다 — 는 이미 돼 있다. 현재 SCM 저장소를 사용하지 않는 소프트웨어 프로젝트를 수행하고 있다면 본 튜토리얼 읽는 것을 멈추고 SCM 저장소를 먼저 받고 가능한 빨리 실행해야 한다.
허드슨과 SCM 통합
허드슨은 CVS와 서브버전을 지원한다. 상용 제품을 원한다면 허드슨에는 또한 상용 Rational ClearCase와 통합하는 플러그인이 있다.
서브버전으로 작업하기
본 튜토리얼의 목적을 생각했을 때 독자들은 서브버전을 사용할 거라 가정한다. 서브버전을 사용하지 않더라도 초조해 하지 말자. SCM 시스템에 상관없이 기본 원칙은 같다. 사실 고급 레벨에서 SCM에 대해서는 CI 프로세스가 매우 간단하다. 이 경우 CI 서버인 허드슨은 특정 프로젝트의 변경 사항을 확인하도록 SCM을 폴링하도록 기본적으로 설정되어 있다. 변화가 감지되면 CI 서버는 업데이트(SCM의 최신 복사본을 갖는다)를 실행하고 빌드를 작동한다. 이 예제에서 허드슨은 본 튜토리얼 앞 부분에서 정의된 빌드를 실행한다.
URL 기반 접근
서브버전식 용어로 말하면 프로젝트는 저장소에 산다. 어떻게 구성하느냐에 따라 저장소는 기본적으로 저장소 경로와 프로젝트 이름을 합친 URL을 통해 접근할 수 있다. 서브버전이 아닌 SCM을 사용한다면 다른 메커니즘으로 저장소에 접근할 것이다. 어떤 경우든 CI 서버를 제대로 설정하여 프로젝트 저장소에 접근해야 한다. 일단 서브버전을 사용한다고 가정하기 때문에 지금 필요한 것은 원하는 프로젝트의 URL을 확인하는 것이다.
프로젝트의 이름이 solar-ci라고 한다면 저장소의 URL은 다음과 같다.
http://scm.acme.com/svn-repo/main/trunks/ |
이 경우 프로젝트의 접근 URL은 다음과 같다.
http://scm.acme.com/svn-repo/main/trunks/solar-ci |
SCM을 어떻게 설정했느냐를 기반으로 저장소 접근을 제대로 구성해야 한다. 예를 들어 서브버전은 사용자 이름과 비밀번호를 요구한다. CI 프로세스를 설정할 때 가끔 CI 서버가 사용할 수 있는 새 사용자 이름을 만들어야 한다. 이 프로젝트에서는 buildmaster라는 새 사용자를 만들 것이다. 나중에 프로젝트를 모니터하도록 허드슨을 구성할 때 buildmaster 크레덴셜을 명확하게 지정하여 소스 가져오기와 기타 기능을 실행하도록 한다.
|