티스토리 뷰

[2016.11.09 18:45]

 

Jenkins에서 ClearCase로부터 소스 코드를 가져와 빌드 할 수 있는 Plug-in이 제공되고 있습니다. 아래의 주소를 통해 Plug-in을 다운로드 가능합니다.

 

https://wiki.jenkins-ci.org/display/JENKINS/ClearCase+Plugin

 

Base ClearCase와 연동 방법에 대해 포스팅하고자 합니다. ClearCase와 연동되서 빌드후 최종 결과물을 얻기까지의 과정은 다음과 같습니다.

 

1. ClearCase Dynamic View에 Config Spec 설정 후, MVFS(Multiversion File System) 드라이브로 부터 소스 코드를 가져옵니다.

2. 가져온 소스 코드를 빌드합니다.

3. Post build process를 통해 빌드된 결과물을 얻습니다.(ex:Archive the artifacts)

 

먼저 Jenkins master 또는 slave node가 동작하는 Client에 ClearCase가 설치 되어 있어야 합니다. 보통 Dynamic View를 통해 ClearCase를 사용하는데, 기본적으로 MVFS는 M 드라이브로 인식 되며, View Tag를 통해 소스코드가 있는 VOB에 접근 가능합니다. 따라서 Dynamic View로 소스코드에 접근할 수 있도록 미리 생성 되어 있어야 합니다. 예제에서는 아래와 같이 가정하고 작성하도록 하겠습니다.

 

- Dynamic View Root: M:\

- VOB: MyWebService

- View Tag: My_Source_View_Tag

- View Path: my_view

 

빌드 프로젝트에서 소스 코드 관리 > Base ClearCase 선택 후, View tag, View path, Config spec을 설정해줍니다. 또한 Get load rules from config spec을 체크하여 load rule은 config spec으로 부터 가져옵니다.

 

 

그리고 Dynamic View를 통해 소스 코드를 접근 할 것이기 때문에, 아래와 같이 설정합니다.

 

 

그런후 Build Step 및 Post Build에서 원하는 설정을 한 후, 빌드를 수행하면 됩니다.

사실 ClearCase Plug-in 내부적으로 cleartool을 통해 ClearCase 커맨드로 모든 것이 동작하기 때문에, ClearCase Plug-in없이도 사용이 가능합니다.

 

따라서 입력된 파라메터의 Config Spec에 따라 빌드를 할 수도 있고, branch/label 적용, check-in,check-out도 ClearCase 커맨드를 통해 모두 빌드 자동화 할 수 있습니다. ClearCase 커맨드에 대해서는 구글링 또는 ClearCase 내부 Help를 통해 확인이 가능합니다.

 

앞에서 언급한 Dynamic View Root, VOB, View Tag, View Path를 정보를 가지고 작성하도록 하겠습니다.

 

1. Dynamic View 생성 및 삭제

아래와 같이 Dynamic View에 대해 생성 및 삭제가 가능합니다.

 

- 생성

cleartool mkview -tag My_Source_View_Tag \\computer-name\my_view\My_Source_View_Tag.vws

 

- 삭제

cleartool rmview -force \\computer-name\my_view\My_Source_View_Tag.vws

 

2. Dynamic View 확인 및 실행

아래와 같이 Dynamic View에 대해 확인 및 실행이 가능합니다.

 

- View 정보 확인

cleartool lsview My_Source_View_Tag 


- View 시작

cleartool startview My_Source_View_Tag

3. Dynamic View에 Config Spec 지정

아래와 같이 Dynamic View에 Config Spec을 동적으로 지정 가능합니다.

 

- Config Spec 설정

cleartool setcs -tag My_Source_View_Tag -overwrite "%WORKSPACE%\MY_CONFIG_SPEC"

 

 여기서 MY_CONFIG_SPEC파일은 Text Parameter로 입력받은 Config Spec이 내용으로 작성됩니다. Text Parameter로 입력을 받은 후, 그 내용을 Workspace 위치에서 파일로 작성할 수 있도록 해주는 Text File Operation Plug-in을 설치후 사용합니다.

 

https://wiki.jenkins-ci.org/display/JENKINS/Text+File+Operations+Plugin

 

아래와 같이 Text Parameter 설정 및 Text File Operation 설정을 합니다.

 

아래와 같이 Text Parameter인 CONFIG_SPEC을 파일 내용으로 매번 빌드시 마다 overwrite하도록 설정합니다. 이렇게 지정함으로써 매번 원하는 Config Spec을 파라메터로 받아 사용할 수 있습니다.

 

- 현재 Dynamic View에 지정된 Config Spec 정보 읽어오기

cleartool catcs -tag My_Source_View_Tag

 

4. 소스 코드 파일 Check-out, Check-in 하기

아래와 같이 Dynamic View에 Config Spec을 통해 불러온 소스 코드 파일을 Check-out, Check-in 할 수 있습니다.

 

- Check-out

아래와 같이 check-out이 가능하며, comment 입력을 원할 경우 -nc 대신, -cfile "코맨드파일"로 입력하면 됩니다. 위에서 파라메터로 Config Spec 지정하듯이 동일하게 적용하면 됩니다. 

cleartool checkout -reserved -nc "M:\My_Source_View_Tag\MyWebService\login.java"

 

 

- Check-in

아래와 같이 check-in이 가능하며, comment 입력을 원할 경우 -nc 대신, -cfile "코맨드파일"로 입력하면 됩니다. 위에서 파라메터로 Config Spec 지정하듯이 동일하게 적용하면 됩니다.

cleartool checkin -cfile "%WORKSPACE%\CC_COMMENT" "M:\My_Source_View_Tag\MyWebService\login.java"

 

 

5. Label 생성/삭제 및 Labeling 하기

 

- Label 생성 및 삭제

rmtype을 통해 삭제, mklbtype을 통해 label 생성이 가능합니다.

M:
cd  My_Source_View_Tag\MyWebService
cleartool rmtype -rmall -force lbtype:WEB_SERVICE_V1.0
cleartool mklbtype -cfile "%WORKSPACE%\CC_COMMENT" WEB_SERVICE_V1.0

 

 

- 소스코드에 Labeling 수행하기

아래와 같이 mklabel을 통해 현재 Config Spec으로 Dynamic View에 보이는 모든 소스코드에 대해 Labeling이 가능합니다. -recurse 옵션을 통해 하위 디렉토리의 모든 파일에 대해 labeling을 수행합니다.

 

cleartool mklabel -recurse WEB_SERVICE_V1.0 M:\My_Source_View_Tag\MyWebService

 

 

** branch 생성/삭제의 경우 일부분만 커맨드명이 바뀝니다.

M: 
cd  My_Source_View_Tag\MyWebService
cleartool rmtype -rmall -force brtype:branch_V1.0
cleartool mkbrtype -cfile "%WORKSPACE%\CC_COMMENT" branch_V1.0

 

 

6. Check-out된 모든 파일을 Check-in하기

보통 Check-out된 파일들을 모두 자동으로 Check-in 하는 것이 필요한데, 아래와 같이 가능합니다. 다음 커맨드의 의미는 MyWebService VOB root에서 main branch에 해당하는 모든 check-out된 파일을 찾은 후, Check-in을 수행합니다. checkin 커맨드는 ci로도 사용할 수 있습니다.

 

이방법을 찾느라 조금 시간이 오래 걸렸던 것 같은데, 유용한 커맨드라 생각됩니다.

M: 
cd  My_Source_View_Tag
cleartool find .\MyWebService -version "brtype(main)" -exec "cleartool ci -cfile \"%WORKSPACE%\CC_COMMENT\" \"%CLEARCASE_PN%\"" | find "CHECKEDOUT" 

 

 

이상으로 Jenkins에서 ClearCase 연동에 대해 포스팅을 마치겠습니다.

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함