젠킨스(Jenkins) 자동 빌드

2017. 2. 21. 20:59기술/기타

반응형

- 후에 추가된 글 -

 젠킨스 빌드의 장단점


 장점 : 원하는 시간대에 자동으로 빌드가 가능하고 APK 송신등이 가능합니다.

 단점 : 예를 들어, 나중에 유니티에 라이브러리가 추가된다든가 했을 때 Gradle Export Project를 해야할 때 젠킨스 빌드가 안될 경우가 있습니다. 즉 외부 라이브러리를 사용했을 때 젠킨스에서 그것을 플러그인으로 지원해 주지 않는다면 젠킨스 자동빌드를 할 수 없습니다. 더군다나 맥에서 빌드를 하는 경우 맥용 파일이 따로 필요할 경우도 있습니다.

 그리고 때론 수동으로 하는것에 비해 불편할 때가 있습니다. 또한, 여러가지로 버전 업데이트가 될 때 젠킨스도 업데이트 되고 새로운 기술같은게 도입됬을 때 젠킨스도 같이 업데이트 되야 한다는 것입니다.

 자동빌드를 위해 알아야 할 지식이 늘어나고 젠킨스 관리도 해야하기 때문에 개발기간이 늘어날 우려가 있습니다.


 개인적인 의견이니 젠킨스 빌드를 도입하시거나 개발하실 때 필요하시면 참고하세요. 젠킨스 빌드 하시는 다른분들도 불편한 점을 느끼실거라 생각합니다.




젠킨스 ( https://jenkins.io/ )

웹 인터페이스를 통한 설정, 자동화 빌드, 자바 오픈소스 소프트웨어, 무료


보통 빌드용 컴은 고사양 맥(MAC)을 사용합니다. 이유는 안드로이드 iOS 함께 빌드하기 위해서 입니다. 젠킨스와 맥을 사용할 때 다소 불편한 점은 맥에서는 Windows의 exe파일이 실행 불가능 하다는 점 입니다.

해결 방안중 한 가지는 iOS는 맥에서 빌드하고 Android는 PC에서 빌드하는 방법이 있습니다. 


일단 다운로드 받습니다.


설치파일이 나오는데 설치합니다. 저는 D:\Jenkins에 설치하겠습니다. (참고로 Mac은 사용자/공유/Jenkins에 설치)

D:\Jenkins\secrets\initialAdminPassword

설치한 곳 패스워드 파일이 있다고 입력하라고 합니다.


웹페이지가 프로그램처럼 뜨는데 플러그인을 설치해야 합니다. (저는 Select plugins to install을 선택했습니다.)


None으로 둔 다음, 플러그인을 살펴보고 인스톨 합니다. (추후 불필요한 플러그인 몇몇을 삭제할 수 있으며 필요한 플러그인을 다시 추가할 수 있습니다.)


추가한 플러그인들입니다. 중요한 플러그인 하나는 Subversion Plug-in (SVN) 입니다.


사용자 계정을 입력하면 설치가 완료됩니다.


localhost:8080으로 접속해야 들어갈 수 있습니다.


Jenkins 관리 / 플러그인 관리 / Unity3D 검색해서 플러그인을 설치합니다.


Jenkins관리 / 시스템설정을 살펴보고 Jenkins URL 이라는 부분이 있습니다. 다른 컴퓨터에서도 접속 할 수가 있습니다.

cmd / ipconfig로 자신의 컴퓨터의 ip 주소를 알아낸 다음 다음과 같이 입력해 줍니다. ( Please set a valid host name, instead of localhost )

http://xx.xxx.x.xxx:8080/


새로운 Item을 클릭하면 프로젝트(Freestyle project)를 하나 추가할 수 있습니다. 


URL에 SVN 주소

자격에 아이디와 패스워드를 추가하고 선택해 줍니다.


다음 블로그를 참조하셔도 좋습니다. ( 최성헌님의 블로그 )

분(minute) : 0~59 입력

시간(hour) : 0~23 입력

일(day of month) : 1~31 입력

월(month) : 1~12 입력

주(week) : 0~7입력

* : 모든 범위

- : 범위 지정

/ : 간격

H 키워드 : Jenkins가 시간을 임의로 지정하여 부하가 적은 시간에 빌드를 진행

H 3 * * 0-6 이라고 하면 임의분, 3시에, 월~토요일 입니다.


유니티가 설치되어 있는 경로를 입력해야 인식합니다. Global Tool Configuration에 있습니다.

JAVA_HOME도 jdk가 설치된 경로를 입력해 줍니다.



그럼 Build에서 유니티를 선택할 수 있습니다. (유니티 커맨드 라인 인수)

여기에서 가장 중요한 것은 AutoBuilder.cs 파일이 있는 Build할 곳의 프로젝트 경로(Path)입니다. 

코드를 작성해서 빌드 해야합니다.


다음으로 Execute shell을 해줄 수가 있습니다. ( ls, rm )


빌드 후 조치를 해 주어야 apk 파일이 생성됩니다. 


STEP

1. SVN Update -> 2. 빌드 시간 체크 -> 3. 유니티 빌드 -> 4. apk 파일 나옴 -> 5. 명령어 실행 -> 6. 빌드 후 조치 (apk)


예약말고 직접 바로 빌드를 해 봅니다.



진행상황을 살펴볼 수 있습니다. Jenkins가 설치된 폴더의 workspace에 SVN이 체크아웃 됩니다.

( D:\Program Files (x86)\Jenkins\workspace\TestAOS )


빌드 된 파일들은 D:\Program Files (x86)\Jenkins\jobs\TestAOS\builds에 위치하게 됩니다.

이 빌드들을 지우는 방법은 Build History에서 #빌드 번호 옆에 화살표를 누르고 삭제하면 됩니다. 그럼 하드 디스크에 저장되어 있는 빌드가 지워지게 됩니다.

( 폴더를 강제로 지워버리면 Build History에서 지울 수 없습니다. )


경로 설정을 자세히 살펴보는 방법은 다음과 같습니다. 빌드 결과물로 가서 Environment variables


유용한 젠킨스 플러그인(Jenkins plugin) : Safe Restart plugin - 가끔 젠킨스를 재시작해야 할 때 사용합니다.



참조 : 

맥 환경 Jenkins 설치 및 환경 설정

맥 환경 Jenkins Gitlab 연동

내 컴퓨터 FTP 서버로 만들기 (파일질라 클라로 접속하기 위해서는 포트 번호를 21로 해주어야 합니다.)

Path에 '@'붙이는 이유

리눅스 파일 권한 설정

맥 원격 접속

반응형

'기술 > 기타' 카테고리의 다른 글

모바일 해킹과 보안  (0) 2020.01.03
스키마와 딥링크  (0) 2017.06.21
Visual Studio 2017 외 유용한 정보  (0) 2016.09.08
UI 작업 FLOW  (0) 2016.07.11
ASTAR 길찾기 알고리즘  (0) 2016.07.04