5. 설치하기
• Windows에서 Jenkins를 설치하는 방법은 엄청 간단합니다.
• Jenkins 홈페이지에서 다운 받아서 설치 합니다.
• https://jenkins-ci.org/
6. 설치하기
• 설치가 완료되면 자동으로 서비스가 시작되어
http://localhost:8080 으로 접속됩니다.
• 만약 8080 포트가 다른 어플리케이션에서 사용 중이라면 404에러
가 발생할 것입니다.
• 이 때는 Jenkins가 설치된 경로(기본 C:Program Files (x86)Jenkins)
에서 Jenkins.xml 파일을 수정하여 port를 8080이 아닌 다른 값으로
변경합니다.
16. DEVENV로 프로젝트 빌드하기
• 오래된 프로젝트이다 보니 vs2005에서 프로젝트가 빌드되고 있었
습니다.
• 처음에는 MSBuild를 사용해서 빌드를 시도했으나 프로젝트의 빌
드 순서 관련 설정이 먹히지 않아 제대로 동작하질 않았어요. (프
로젝트 내에서 지정한 순서대로 빌드 되지 않고 프로젝트 순서대
로 빌드 됨)
• 해결방법을 찾지 못해서 devenv를 사용해서 빌드했습니다.
17. BUILD STEP
• MSBuild의 경우에는 Jenkins에서 제공하는 플러그인이 존재해서
플러그인을 설치한 후 사용하면 됐었는데, devenv는 안보이더군요.
• 그래서 무식하게 “Execute Windows batch command”를 사용했습
니다.
18. COMMAND 입력
• 먼저 devenv가 있는 경로를 알아야 합니다. 보통 아래와 같은
C:Program Files (x86)Microsoft Visual Studio 8Common7IDE 에서 설
치되어 있는 버전에 맞는 경로로 찾아 들어가시면 됩니다.
19. DEVENV 실행 파일
• Devenv가 있는 경로에 가보면 devenv.exe와 devenv.com이 존재하는데
devenv.exe는 로그 출력 없이 수행이 되고 devenv.com은 로그를 함께
출력해 줍니다.
• 그래서 저는 devenv.com을 사용했어요.
20. DEVENV 옵션
• 여기서 사용한 옵션 중에 /Build는 말그대로 빌드를 수행하는데 이 외
에도 /ReBuild, /Clean이 있고 옵션은 필요한 것들을 찾아보고 적용하
시면 됩니다.
• 여기서 “Debug|Win32”와 같은 것을 매개변수로 지정해서 사용하면
빌드 시작 시에 선택해서 빌드 할 수가 있겠죠?
• 그 뒤에 /out은 출력되는 로그를 파일로 저장하기 위한 옵션입니다.
21. 빌드 실행
• 이제 기본적인 빌드를 실행할 수가 있습니다.
• 저장을 하고 나오면 아래와 같이 새로운 Item이 추가가 되었고, 오
른쪽에 있는 아이콘을 클릭하면 빌드를 시작하게 됩니다.
22. 빌드 실행 – 매개변수 선택
• 아까 설정한 매개변수가 보입니다.
• 이 매개변수를 구성에서 사용할때는 %% 안에 매개변수명을 넣어서 사용하면 됩니
다. (예를 들면 %Parameter1%)
• 위에서 사용했던 Windows Batch Command에서 /Build 다음에 플랫폼
을 %Platform%과 같은 식으로 지정해서 사용하면 좀 더 다양하게 빌드할 수 있
을 것입니다.
23. 빌드 진행
• 빌드하기를 선택하면 왼쪽 하단에 진행상황이 출력됩니다.
• 진행 상황을 선택하면 더 자세한 정보를 확인할 수가 있어요.
25. C#을 활용해서 입맛대로 구성해보기
• 사실 내용은 별거 없습니다.
• Windows Batch Command를 사용해보니 잘 모르는 ant를 공부해서
사용하는 것보다 C#을 이용해서 원하는 기능을 포함시키자 라는
아이디어가 떠올랐습니다.
• 그래서 Jenkins에서 활용할 수 있도록 기존의 툴을 변형시켜서 사
용했습니다.
• Command로 실행 할 수 있도록. (실행파일.exe 옵션1 옵션2 옵
션3)
26. 제가 사용했던 것
• 빌드 전에 필요한 파일들을 복사해야 하는 경우
• 기획자와의 협업 과정 중 변경된 테이블을 빌드 전에 적용해야 하
는 경우
• 빌드 후 해외로 배포해야 하는 경우 해당 국가에 맞는 실행 파일들
로 패키징하는 경우
• 다른 머신으로 배포 후 서비스 등록까지 한방에
• 등등 그냥 구현하기 나름인 것 같습니다.
28. 겪었던 이슈 -1
• C#으로 제작한 프로그램을 사용하는 경우 코드 내에
“Environment.CurrentDirectory”를 이용하거나
“Directory.GetCurrentDirectory()”를 사용해서 경로를 가지고 오는
경우 프로젝트의 작업 디렉토리가 아닌 파일을 실행시킨 위치를
가져오므로 잘못된 위치를 가리킬 수 있습니다.
• 프로젝트의 작업 디렉토리를 가져오기 위해서는
“AppDomain.CurrentDomain.BaseDirectory”를 사용합니다.
29. 겪었던 이슈 -2
• Windows Batch Command를 이용하여 원격 PC에 배포를 하는 경우 경로를 찾
지 못하는 문제가 발생했습니다.
• 로컬에서는 정상 동작하는데 원격 PC로 배포하는 경우에만 자꾸 경로를 찾지
못해서 한참을 헤매던 중 Jenkins로 실행 될 때 실행하는 사용자 계정을 찍어보
니 AUTHORITYSYSTEM 이었습니다.
• 이는 Jenkins 서비스의 설정이 로컬 시스템 계정으로 되어있기 때문이었는데
원격 PC의 공유 폴더에 이 계정에 대한 권한이 없어서 였습니다.
• 그래서 공유폴더에 권한을 가지고 있는 계정으로 지정해서 서비스를 재시작
하니 해결되었습니다.
• 서비스 -> Jenkins 에서 속성으로 진입 -> 로그온 -> 계정 지정 -> 관리자 지
정
30. 마치며
• Jenkins는 직접적으로 구축해본 것은 이번이 처음이었습니다.
• 간단해 보였는데 생각보다 시행착오가 많았습니다.
• 앞으로 더 알게 되는 유용한 정보는 공유할 것입니다.
• 조언을 해 주실 분이나 궁금하신 부분은 메일로 보내주세요.
• yongho1037@gmail.com