형상관리

Gitlab과 Jenkins로 CI/CD 구축 (3)

내공부방 2024. 8. 6. 23:04
반응형

이번에는 Jenkins를 통해 PC, 안드로이드로 뽑아보는 것을 정리해볼 것이다.

 

1. Jenkins 설정

이전 글에서 세팅한 프로젝트의 구성으로 가보자!

 

 

다른 블로그를 보면 빌드 후 조치 부분에 새로운 플러그인을 받아 진행하였다

하지만 나는 다른 방법으로 진행해보려 한다

(* 해봤는데 내가 못따라 하는 것인지 .. 잘안되서;; ㅎㅎㅎ )

 

구성에 들어가보면 Build Steps이 존재하는데 

여기서 Add bild step을 클릭!!

 

Command 부분에 해당 문구를 입력 

@echo off
echo "Build Start"
cd '프로젝트의 위치'
echo "현재 디렉토리: %cd%"

"...Editor/2022.3.37f1/Editor/Unity.exe" -batchmode -quit -projectPath 
"%cd%" -executeMethod 'Unity Editor에 있는 스크립트명.메서드명' 
-logFile 'log파일을 넣을 위치'

if exist "Unity Editor 코드에서 exe파일 저장 위치" (
    echo "PC Build SUCCESS"
) else (
    echo "PC Build FAIL"
    exit /b 1
)

if exist "Unity Editor 코드에서 apk파일 저장 위치" (
    echo "Android Build SUCCESS"
    exit /b 0
) else (
    echo "Android Build FAIL"
    exit /b 1
)

 

 

2. Unity 설정

Jenkins에서 빌드한 프로젝트에 Asset/Editor에 스크립트 생성

 

-executeMethod 'Unity Editor에 있는 스크립트명.메서드명' 

=> -executeMethod 'A.B' 이런 식으로 사용

public class A
{
    public static void B()
    {
        BuildWindows();
        BuildAndroid();
    }

    //[MenuItem("Build/Build All Platforms %&b")]
    public static void BuildWindows()
    {
        string[] scenes = { "Assets/Scenes/SampleScene.unity" };
        string buildPath = "저장할 위치";
        BuildPipeline.BuildPlayer(scenes, buildPath, BuildTarget.StandaloneWindows64, BuildOptions.None);
    }

    [MenuItem("Build/Build All Platforms %&b")]
    public static void BuildAndroid()
    {
        string[] scenes = { "Assets/Scenes/SampleScene.unity" };
        string buildPath = "저장할 위치";

        BuildReport report = BuildPipeline.BuildPlayer(scenes, buildPath, BuildTarget.Android, BuildOptions.None);
        if (report.summary.result == BuildResult.Succeeded)
        {
            Console.WriteLine("Android Build Complete: " + buildPath);
        }
        else
        {
            Console.WriteLine("Android Build Failed");
            foreach (var step in report.steps)
            {
                foreach (var message in step.messages)
                {
                    Console.WriteLine($"{message.type}: {message.content}");
                }
            }
        }
    }
}

 

 

3. 결과 확인

PC와 apk가 뽑힌 것을 확인할 수 있다!

반응형