젠킨스(Jenkins) Unity 세팅하기
[젠킨스 관리]- [플러그인 관리] -[설치 가능] - Unity를 검색해서 Unity3d를 설치해줍니다.
Unity Plug in을 설치 이후에 [젠킨스 관리] - [ Global Tool Configuration]에서 Unity에 대한 실행 경로를 추가한다.
유니티 실행 위치를 기본적으로 잡아주고 저장한다.
이후에는 빌드 환경이 잡힌 Item에 환경을 추가한다.
[빌드 환경] - [add Build step] -[Invoke Unity3 d Editor]를 선택한다.
Unity Plug in 설치와 Unity 환경변수 (Unity3d installations)이 정상적이면 나온다. 그게 아니라면 경고창을 확인해서 해결해줘야 한다.
Editor command line arguments에 내용은 다음과 같다.
-quit -batchmode -projectPath "/프로젝트 경로" -executeMethod BuildPlayer.Build_AOS_Debug -logFile "$WORKSPACE/unityJenkins.log"
커맨드 명령어는 대략 다음과 같다.
-quit : 유니티가 동작을 다 하면 종료시키는 명령어
-batchMode : 배치 모드로 유니티를 실행
-buildTarget Android : 유니티 빌드 타깃 설정
-projectPath 'C:/Project/$PROJECT_PATH' : 유니티 프로젝트 경로
-executeMethod ~~~~ : 배치 모드에서 실행할 유니티 함수
-logFile "$WORKSPACE/unity3 d_editor.log" : 로그파일 출력 경로
Unity 커맨드 라인 참고 : https://docs.unity3d.com/kr/530/Manual/CommandLineArguments.html
원리는 젠킨스에서 Unity를 배치파일 모드(터미널)에서 커맨드 라인으로 실행해서 static Method를 호출하는 것으로 종료를 한다.
-executeMethod BuildPlayer.Build_AOS_Debug의 내용에 포함되는 스크립트는 다음과 같다.
해당 스크립트는 Editor 밑에 포함되어야 한다.
[Asset - Editor - BuildPlayer.cs]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.Build.Reporting;
public class BuildPlayer
{
[MenuItem("Build/Build AOS(Debug")]
public static void Build_AOS_Debug()
{
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = FindEnabledEditorScenes();
buildPlayerOptions.locationPathName = string.Format("Build(AOS)/Test_{0}.apk",PlayerSettings.bundleVersion);
buildPlayerOptions.target = BuildTarget.Android;
buildPlayerOptions.options = BuildOptions.Development;
BuildReport report = BuildPipeline.BuildPlayer(buildPlayerOptions);
BuildSummary summary = report.summary;
if (summary.result == BuildResult.Succeeded)
{
Debug.Log("Build succeeded: " + summary.totalSize + " bytes");
}
if (summary.result == BuildResult.Failed)
{
Debug.Log("Build failed");
}
}
[MenuItem("Build/Build IOS")]
public static void Build_IOS()
{
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = FindEnabledEditorScenes();
buildPlayerOptions.locationPathName = "Build(IOS)";
buildPlayerOptions.target = BuildTarget.iOS;
buildPlayerOptions.options = BuildOptions.None;
BuildReport report = BuildPipeline.BuildPlayer(buildPlayerOptions);
BuildSummary summary = report.summary;
if (summary.result == BuildResult.Succeeded)
{
Debug.Log("Build succeeded: " + summary.totalSize + " bytes");
}
if (summary.result == BuildResult.Failed)
{
Debug.Log("Build failed");
}
}
private static string[] FindEnabledEditorScenes()
{
List<string> EditorScenes = new List<string>();
foreach (EditorBuildSettingsScene scene in EditorBuildSettings.scenes)
{
if (!scene.enabled) continue;
EditorScenes.Add(scene.path);
}
return EditorScenes.ToArray();
}
}
해당 설정을 하고 빌드를 실행하면 SUCCESS가 떨어지면 빌드가 성공한 것이다.
Android 빌드를 하는도중 JDK가 없거나 SDK가 경로를 찾을 수 없다고 에러메시지가 나오면
Unity Hub에서 간편 설치하면된다.
.apk 파일(빌드파일)이 생성된 것(Test_0.1.apk)가 확인되었다.
다음에는 추가로 빌드에 대한 알림 설정과 추가적인 Plug in 처리를 진행할 예정이다.
★★★★☆
'개발 > 게임) 개발관련' 카테고리의 다른 글
프로토타입) 슈팅 게임(Shouting Game) (2) | 2020.08.26 |
---|---|
개발환경)젠킨스(Jenkins) + 슬랙(Slack) 연동 빌드 알림 받기 (2) | 2020.08.25 |
개발환경)젠킨스(Jenkins) GitLab 연결하기 (0) | 2020.08.24 |
개발환경)젠킨스(Jenkins) Mac 설치하기 (0) | 2020.08.23 |
게임개발)테스트 케이스(Test Case : TC) (2) | 2020.07.21 |
댓글