180bpm

Jenkins를 이용한 Unity3D 빌드 (AOS) 본문

Develop/R&D

Jenkins를 이용한 Unity3D 빌드 (AOS)

powdersnow 2014. 10. 10. 12:22

0. 목적

일정한 스케쥴에 따라 빌드, 다만 수동 빌드도 가능

빌드가 완료되면 메일을 쏘거나 네트워크 공유된 폴더로 복사후

lmc를 이용한 notify나 e-mail을 이용한 notify


1. 머신 환경

CPU가 중요할까..?

pc 1 - ...나쁨, 지포스 210 (여기서 돌아감)

pc 2 - 만만찮음.. 지포스 6600 (SVN, Redmine 서버)


2. 젠킨스 환경 설정

http://la-stranger.blogspot.kr/2013/10/unity-os-jenkins-1.html

http://la-stranger.blogspot.kr/2013/10/unity-os-jenkins-2.html


이분 블로그가 깔끔하게 정리되어있어서 참고가 많이 되었다.



3. 트러블슈팅


-Failed to initialize unity graphics가 뜰 경우

Unity3d Editor plugin의 arguments에 -nographics 파라메터를 넣는다.

http://www.slashgames.org/unity3dwithoutgraphics/ 의 도움을 받음.


-Console Output에서 Main.cs에서 넘어가지 않을경우

이건 정확히 뭐가 문제인지 파악을 하지 못했다.

우선 해결책으로 Jenkins가 설치된 머신에다가 똑같이 Slave를 만들어줬다. 다만 이걸 서비스로 등록했을 경우나, user를 지정해서 사용하려는 경우 문제 생김. 자바를 띄웠을때만 문제없이 지나감.


Mono: successfully reloaded assembly 에서 넘어가지 않을경우

-quit 파라메터 추가.


BuildPlayer의 locationPath 파라메터에 절대경로를 넣은 경우 (ex. C:\testFolder\test.apk)

안됨.;; 짝남.


-젠킨스로는 빌드가 끝나지 않는데 에디터에선 문제없이 잘 빌드가 되는 경우 (주로 MonobehaviourSerializer.cs 파일이었나..?)

이것때문에 한동안 젠킨스가 멈췄었다.

멤버변수 선언시 Application.dataPath를 쓰는것때문에 빌드가 되지 않았습니다.

이게 빌드가 완료되면 에러메시지로 출력이 되던데 CLI에서는 따로 스킵이 안되는가봅니다.

에디터에선 빌드 잘 되는데 CLI에서 빌드 안되시는분은 빌드 끝나고 에러메시지 확인해보시면 해결 되실듯 합니다.


스케쥴에 따라서 빌드

월~금 오후 1시, 오후 6시 빌드.

0 13,18 * * 1,2,3,4,5


최종 파라메터

-batchMode -nographics -quit -executeMethod ProjectBuilder.PerformAndroidBuild


4. 남은것.


notify를 어떻게 할지...

첨부파일로 보내야할텐데 이걸 어떻게 해야할지..;

기획팀장님이 APM 깔아서 외부에서 접속할 수 있게 해준다 하시더라..

아직은 멀었지만 ios

http://lacostej.blogspot.kr/2012/03/unity3d-from-commit-to-deployment-onto.html

Comments