본문 바로가기

Dev

Jenkins - Unity 설정

참고 : drehzr.tistory.com/605?category=343061

 

개발환경)젠킨스(Jenkins) Unity 셋팅하기

젠킨스(Jenkins) Unity 세팅하기 [젠킨스 관리]- [플러그인 관리] -[설치 가능] - Unity를 검색해서 Unity3d를 설치해줍니다. Unity Plug in을 설치 이후에 [젠킨스 관리] - [ Global Tool Configuration]에서 Un..

drehzr.tistory.com

 

jenkins 관리 > 플러그인 관리에서 아래 플러그인 추가돼있어야 함

Unity3d plugin

This plugin can run Unity 3d Editor builds.

 

jenkins 관리 > Global Tool Configuration > Unity3d

unity 경로 설정

유니티 경로 설정

 

이제 빌드 설정

프로젝트 > 구성 > Build > Add build step > Unity3d Editor 선택

build step에 unity editor 설정

 

Unity3d installation name에 앞에서 설정한 unity 이름 설정, Editor command line arguments 입력

command line 설정

 

-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

 

Unity - Manual: Command line arguments

Batch mode and built-in coroutine compatibility Command line arguments You can run Unity from the command line (from the macOS Terminal or the Windows Command Prompt). Launching Unity On macOS, type the following into the Terminal to launch Unity: /Applica

docs.unity3d.com

 

-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

 

Unity - Scripting API: BuildPipeline.BuildPlayer

Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close

docs.unity3d.com

 

젠킨스 빌드 돌리고 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 build failed due to missing android SDK

As the title says my jenkins build fails due to not finding the android sdk dispite it being located in the environments path. Here is the console logs Started by user anonymous Building in works...

stackoverflow.com

 

jenkins 관리 > System Configuration > 시스템 설정 > Global properties 

ANDROID_HOME으로 android sdk 경로, 

ANDROID_NDK_HOME으로 android ndk 경로 지정하고 다시 빌드 시도

ANDROID_HOME, ANDROID_NDK_HOME 설정

 

빌드 성공!

지정한 경로에 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