Seize the day

POST : SDP for win32/빌드,배포 자동화

빌드 배포 자동화 그리고 자동화 ...

자동화는 좋은 것이다. 컴퓨터가 할 수 있는 일은 컴퓨터에게 시키는 것이 맞다. 사람이 어떤 단순한 일을 수작업으로 반복하게 되면  느리고, 지루하며, 귀찮고, 다른 중요한 일에 집중할 시간을 빼앗기게 된다. 더 큰 문제는 반드시 실수를 하게 되는데 실수를 픽스하는데 불필요한 시간이 들며 경우에 따라서는 중대한 장애로 번질 수 도  있다. 그래서 자동화가 중요하다.  단순 반복적인 일이 있다면 어떻게든 자동화하여 실수를 하지 않았을까 하는 불안감에서 벗어나도록 하자.

 

! 빌드 자동화

- trunk/autobuild.cmd를 실행하면 deploy폴더에 셋업파일을 생성되도록 스크립트를 작성하자.

- 빌드에 필요한 tool 프로그램은 build/tools 에 두고, 그외 미리 선행적으로 설치되어야 하는 프로그램은 build/readme.txt 에 나 doc/howto-build.docx 와 같은 식으로 문서화해 둘 필요가 있다.

 

 

! 배포 자동화

- 리얼에 배포되는 빌드를 자동으로 생성하고, 결과 바이네리와 빌드 로그를 모두 보관해 둔다.

- 배포후 문제가 생기는 경우 직전 릴리스 빌드를 재배포하는 방법으로 롤백할 수 있다.

- 서버구성도

                SVN or git서버  -->    빌드서버/CI서버       Test(qa)배포서버      리얼배포서버      사용자 PC

                       ^                          |______________>

                       |                                                        |______________>

                       | src                                                                                 |_________> setup.exe/ version.xml

개발자1         __|

개발자2         __|

...

 

  - 개발자1이 소스를 커밋하면 개발자2는  커밋 노티를 받을 수 있다.

  - 빌드서버 

    * 개발리더는 테스트 빌드와 릴리스 빌드를 나누어서 빌드서버에 명령을 줄 수 있다.

    * 테스트빌드는 trunk, 릴리스 빌드는  trunk를 branches로 브랜치를 생성한다. 빌드시 모든 소스를 새로 내려받고 autobuild.cmd를 실행한다.  빌드가 성공하면 deploy의 결과물은 Test 배포서버로 배포된다. 

    * 빌드서버는 빌드와 배포를 동시에 할 수 있고, Test배포서버, 리얼배포서버로 배포 타겟을 지정할 수 있으며, 이전 빌드에 대해서 배포만 할 수 도 있다.

    * 빌드서버에서의 빌드 혹은 배포가 실패할 경우 담당자에게 메일 혹은 SMS가 전송된다.

- CI서버는 주기적으로 모니터링하다가 소스가 커밋되면 소스를 내려받아서 빌드한다. 이때 추가적으로 유닛테스트를 돌리거나 정적분석 툴을 돌리거나 할 수 있다. 역시 실패할 경우 담당자에게 메일이 전송된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

top

posted at

2013. 5. 11. 02:44


CONTENTS

Seize the day
BLOG main image
김대정의 앱 개발 노트와 사는 이야기
RSS 2.0Tattertools
공지
아카이브
최근 글 최근 댓글
카테고리 태그 구름사이트 링크