ETC/Unity

[Unity] Jenkins, Gitea를 활용해 유니티 자동빌드하기 - 2 -

Jade Choe 2024. 5. 20. 16:46
SMALL

Node 실행하기

각 노드의 이름을 클릭해보면 시스템에 맞는 Agent 실행 커맨드라인이 보인다.

 

java -jar agent.jar -url http://127.0.0.1:8080/ -secret 2ab17036e507d3d852b6d245dde21f6817ce35e4fc0582484d85124b29392edd -name "Windows-x64" -workDir "E:\Jenkins"

 

 

URL을 본인 상황에 맞게 바꿔서 터미널에 입력해주면 Connected가 뜨며 웹 UI상 빌드 실행 상태가 "대기중"으로 바뀐다.

 

프로젝트 설정하기

새로운 아이템 - FreeStyle Project

 

General에 "이 빌드는 매개변수가 있습니다" 클릭 후 매개변수 추가

Label 선택 후 Node에서 설정한 라벨을 순차적으로 입력한다.

 

 

 

소스 코드 관리에서 Git 체크 후 Gitea 프로젝트 경로를 입력한다.

 

 

빌드 유발에 Github hook trigger for GITScm polling을 체크한다.

 

 

 

BuildSteps에서 Add Build Step 클릭 후 Invoke Unity3d Editor 추가

 

 

-quit -batchmode -logFile "$WORKSPACE/Jenkins-Build-Result.log" -buildTarget $BUILD_TARGET -projectPath "$WORKSPACE" -executeMethod $EXECUTE_METHOD

 

WORKSPACE, BUILD TARGET, EXECUTE METHOD은 환경 변수에 맞춰서 자동으로 치환된다.

Gitea 웹훅 설정

Gitea 프로젝트 설정 - 웹훅 항목에 들어간 후

Webhook 추가 - Gitea 클릭

 

 

젠킨스 URL + 포트 입력 후 path로 github-webhook/ 을 입력한다

예시)

http://192.168.0.10:8080/github-webhook/

 

주의할 점은 path 뒤에 슬래시를 꼭 붙여주어야 한다.

이유인 즉슨, 슬래시 없이 http://url:port/github-webhook 로만 입력하면 뒤에 슬래시를 자동으로 붙여 redirect 시키기 때문에, 200이 아닌 302 응답만 받게 되어 실패로 간주된다.

 

트리거는 일단은 푸시 이벤트로 넣고, 추후 PR이 들어오면 해당 브랜치를 빌드 후 문제가 없으면 Merge하는 식으로 진행 할 예정이다.

 

 

이제 git push를 해보면 node들이 순차적으로 빌드를 시작한다.

 

 

 

빌드 후 워크스페이스를 확인해보면 잘 들어가있는 것을 볼 수 있다.

 

개발용 머신과 빌드머신 총 3개의 기기 인증이 필요한데, 유니티 라이센스 Seat 하나당 총 두대까지만 사용할 수 있기 때문에 일단 윈도우 빌드는 개발용 PC에 에이전트를 실행하고, 

추후 라이센스 문제가 해결되면 Windows 머신을 따로 두지 않고 Parallels에 Windows 11과 유니티를 설치해서 맥 하나로 에이전트 둘 모두를 사용할 예정이다.

 

BIG