참고 : drehzr.tistory.com/605?category=343061
jenkins 관리 > 플러그인 관리에서 아래 플러그인 추가돼있어야 함
This plugin can run Unity 3d Editor builds.
jenkins 관리 > Global Tool Configuration > Unity3d
unity 경로 설정
이제 빌드 설정
프로젝트 > 구성 > Build > Add build step > Unity3d Editor 선택
Unity3d installation name에 앞에서 설정한 unity 이름 설정, Editor command line arguments 입력
-quit -batchmode -logFile "$WORKSPACE/JenkinsBuild.log" -buildTarget Android -projectPath "E:\GitProject\learnGitLab\jenkins\plage" -executeMethod BuildPlayer.MyBuild_AOS
-quit : 커맨드 실행이 끝나면 Unity 에디터를 종료
-batchmode : 배치 모드로 Unity를 실행
-logFile "<pathname>" : 주어진 경로에 로그파일 생성
-buildTarget <name> : 빌드 타겟 지정
-projectPath "<pathname>" : 주어진 경로의 프로젝트 열어서 수행
-executeMethod <ClassName.MethodName> : Unity가 프로젝트를 열자마자 주어진 메서드 실행. 스크립트를 Editor 폴더에 배치해야 함. 또한 실행하는 메서드는 반드시 static으로 정의되어야 함
유니티 커맨드 라인 참고 : docs.unity3d.com/Manual/CommandLineArguments.html
-executeMethod <ClassName.MethodName>로 실행할 메서드
Asset/Editor 밑에 스크립트가 있어야 함!
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using UnityEditor.Build.Reporting;
// Output the build size or a failure depending on BuildPlayer.
public class BuildPlayer : MonoBehaviour
{
[MenuItem("Build/Build AOS")]
public static void MyBuild_AOS()
{
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new[] { "Assets/Scene1.unity", "Assets/Scene2.unity" };
buildPlayerOptions.locationPathName = $"Builds/AOS_{PlayerSettings.bundleVersion}.apk";
buildPlayerOptions.target = BuildTarget.Android;
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");
}
}
}
BuildPipeline.BuildPlayer 참고 : docs.unity3d.com/ScriptReference/BuildPipeline.BuildPlayer.html
젠킨스 빌드 돌리고 Console Output 확인했는데 실패
유니티에서 빌드했을 때는 문제없이 APK 파일 생성 됐었는데..
아래와 같은 에러 확인
UnityException: Android SDK not found Invalid SDK directory path.
UnityException: Android NDK not found Android NDK not found or invalid. Please, fix it in Preferences -> External Tools
참고 : stackoverflow.com/questions/29216244/jenkins-build-failed-due-to-missing-android-sdk
jenkins 관리 > System Configuration > 시스템 설정 > Global properties
ANDROID_HOME으로 android sdk 경로,
ANDROID_NDK_HOME으로 android ndk 경로 지정하고 다시 빌드 시도
빌드 성공!
지정한 경로에 APK 파일 생성 확인
'Dev' 카테고리의 다른 글
SourceTree에서 계속 비밀번호를 물어볼 경우 (0) | 2021.06.08 |
---|---|
Jenkins - Email Notification (gmail) 설정 (0) | 2021.03.14 |
Jenkins - GitLab 설정 (0) | 2021.03.12 |
GitLab (0) | 2021.03.12 |
.gitignore 템플릿 (0) | 2021.03.12 |