22. 이제 빌드는 내가하겠소!
개발팀장
“이제 매일 빌드를 해야하니 내가 할께요!”
“개발에 좀 더 집중해주세요!”
“그리고 매일 오후 6시에 빌드작업을 시작할께요!”
프로그래머 J님 프로그래머 S님프로그래머 H님
드디어 해방이다! 쉽지 않을걸요? 오~팀장님 짱~!
23. 일일빌드를 위하여…
개발팀장
프로그래머 J님 프로그래머 S님프로그래머 H님
빌드를 만들기 위해 작업이 완료되지 않은 코드는 모두 주석처리
새로운 기능구현과 마스터빌드 수정 병행
‘머…먼가… 너무 힘들다…’
5시반이에요!
git에 올려줘요!
24. 브랜치는 먹는건가요?
각자 독립적인 작업영역을 가지고 작업을 분기할 수 있는 기능
언제 사용하는가?
현재의 안정적인 버젼을 유지하면서
테스트 용도의 개발이나 장기간의 기능구현이 필요할때!
새로운 기능구현과 마스터 빌드의 수정을 병행해야 할때!
출처: 누구나 쉽게 이해할 수 있는 Git 입문
25. 우리가 Git을 사용하는 이유!
빠르고 쉬운 브랜치 모델
그 어떤 버전관리시스템 보다 빠르고 쉽다!
로컬에 다수의 브랜치를 허용하고 각각 완벽한 독립성을 제공한다!
브랜치 전환시 작업파일들이 실시간으로 변경된다!
26. 브랜치로 유연해진 작업전환!
개발팀장
프로그래머 J님 프로그래머 S님프로그래머 H님
무조건 새로운 브랜치를 만들어서 작업하자!
마스터빌드 때문에 완성되지 않은 작업을 주석처리할 필요 없어짐
새로운 작업을 시작할때는
작업이 완료되지 않아도 언제든지 중단하고 다른작업 가능
끝내주지 않음?
오~ 신세계임! 이걸 몰랐었다니 Git 짱조아요!
27. 내친김에 일일빌드 회의까지!
개발팀장
“매일 오전 1시간씩 일일빌드 회의를 하겠어요!”
“디자인팀과 기획팀도 참석해주세요~”
디자인팀 대표이사기획팀
오~ 그게 가능해? 잘 안될걸… 진작에 했어야지
“앞으론 일일빌드 회의로 매일매일 피드백 주세요!!!”
28. 더 이상 두렵지 않아!
개발팀장
대표이사
하지만 매일 리스크를 조금씩 줄여나가니 재빌드 횟수도 점점 줄어들고
빌드는 자연스럽게 안정화 되어가고 있었다
첫 1주일은 고통의 시간이였다
요즘 빌드가 좀 안정적인데?
뭐지? 칭찬인가?
32. 오후 6시 - 개발팀
개발팀장
매일 6시 정각에 빌드를 시작하기가 쉽지는 않았다
프로그래머 J님 프로그래머 S님프로그래머 H님
10분만여! 4시간만…
빌드 시작합니다
2시간만…
작업이 끝나길 기다리거나
다음날 아침 일찍 출근하여 빌드를 만들기도 하였다
33. 점점 귀찮아진다…
개발팀장
아~ 귀찮네~
디자인팀 대표이사기획팀
무슨 개똥같은 소리야! 그럴줄 알았다 자알한다
회의가 있을수도 있고 약속이 생길수도 있어서
매일 1시간이상을 빌드 만들기에 시간을 쏟는건 너무 고달펐습니다
오늘은 패스할까?
34. 개발팀장
나를 대신 할놈이 필요하다
매일 하기에는 과정이 너무나도 번거롭다…
git에서 팀원들 소스를 받아서 merge 하고...
git에서 디자인 리소스를 받아서 publish 하고....
빌드 버젼을 올리고...
iOS 빌드를 하고...
안드로이드 빌드를 하고...
서버에 빌드파일을 올리고....
새로운 빌드 공유 메일까지 보내면 끝!
38. 까칠한 Jenkins씨
오픈소스 CI 툴 (빌드 자동화)
* CI = Continuous Integration
원래 이름은 허드슨이였다
JAVA로 만들어졌고 웹으로 손쉽게 관리가 가능하다
CVS, SVN, Git 등의 버전 관리 시스템 지원
Xcode, Unity, ant, maven 등의 빌드툴 지원
* 팀의 구성원들이 작업한 내용을 정기적으로 통합한다
39. Jenkins씨를 선택한 이유
무료다!
* TeamCity의 경우 무료버젼은 20개의 프로젝트만 생성가능
플러그인이 굉장히 많다 (100여개)
사용자가 많아서 Reference가 풍부하다
오픈소스임에도 불구하고 유지보수가 잘되고있다
다양한 OS에 설치가 가능하다
* Windows, Mac OS X, FreeBSD, OpenBSD
* Ubuntu / Debian, RedHat / Fedora / CentOS …
40. Jenkins씨 고용하기 - 다운로드
https://jenkins-ci.org
내 OS에 맞는 Package 다운로드
45. 개발팀장
빌드 작업 - 대략 20분 소요
이 작업을 모두 Jenkins씨한테 넘기자!
git에서 최신 코드를 받아서 merge 하고...
git에서 디자인 리소스를 받아서 publish 하고....
빌드 버젼을 올리고...
iOS 빌드를 하고...
안드로이드 빌드를 하고...
서버에 빌드파일을 올리고....
새로운 빌드 공유 메일까지 보내면 끝!
46. 빌드 프로세스 구성
총 4개의 git 저장소를 사용
Cocos Engine Builder Game
PULL
BUILD
PULL PULL
PUBLISH
PULL
VERSION
BUILD
UPLOAD
MAIL
47. 모든게 자동화 되어야 한다
완벽한 빌드 자동화를 위한 부가적인 툴 개발
cocosBuilderPublish
versionUpdater
upload.sh
[Command line tool]
51. 제대로 부려먹자! 삼시세끼 빌드하기!
전날 저녁 7시부터 당일 오전 8시까지 작업분 빌드 (야근을 할수도…)
오후 1시 빌드
오전 8시 빌드
저녁 7시 빌드
오전 8시부터 오후 1시까지 작업분 빌드 (오전 작업분 확인가능)
오후 1시부터 저녁 7시까지 작업분 빌드 (오후 작업분 확인가능)
* 이외의 시간에 빌드를 만들어야 할때는 강제빌드! (원클릭) *