Trikang
Jenkins와 Bitbucket, Unity3D 엔진 연결하기 본문
현재 Unity3D 개발 환경 구축을 위해 Jenkins와 Bitbucket을 연결 중이다. 개발하며 겪었던 시행착오를 서술해 놓았다.
- 젠킨스에서 프로젝트를 생성할 때 소스 코드 관리 옵션을 Git으로 설정하고 Bitbucket으로 생성한 저장소의 URL을 Repository URL에 넣으면 Invalid username or password. If you log in via a third party service you must ensure you have an account password set in your account profile. 발생
분명 SSH 발급 제대로 했다. 이게 문제인가 싶어서 Git Bash로 Clone을 해봤더니...
잘 된다.
뭐가 문제인지 찾아봤더니, Jenkins는 기본적으로 로컬 시스템 계정으로 실행됨. 이는 SSH key를 가지고 있지 않거나, known_hosts가 설정되지 않음. 그래서 Admin 계정으로 실행했던 위와 결과가 달랐던 것.
그래서 속성에서 jenkins 서비스에 들어가 로그온 할 때의 계정을 관리자로 바꾸어 줌. 그랬더니 잘 작동함.
- Jenkins 내에서 Git 경로 설정
여러 문서에서는 http://젠킨스-경로/configure 에 들어가면 git 경로를 설정할 수 있다고 하였다.(예) 그러나, 현재는 Global Tool Configuration, 즉 http://젠킨스-경로/configureTools 에 있다.
참고 자료
ToDo
1-1. https://wiki.jenkins.io/display/JENKINS/Unity3dBuilder+Plugin의 prerequisite 절차를 보면, Editor에 Script를 적어줌. 이 스크립트가 하는 일을 정확히 파악하자
using UnityEngine; using UnityEditor; using System; using System.Collections; using System.Collections.Generic; class ProjectBuilder { static string[] SCENES = FindEnabledEditorScenes(); static string APP_NAME = "YourProject"; [MenuItem ("Custom/CI/Build Android")] static void PerformAndroidBuild () { string target_filename = APP_NAME + ".apk"; GenericBuild(SCENES, target_filename, BuildTarget.Android ,BuildOptions.None); } 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(); } static void GenericBuild(string[] scenes, string target_filename, BuildTarget build_target, BuildOptions build_options) { EditorUserBuildSettings.SwitchActiveBuildTarget(build_target); string res = BuildPipeline.BuildPlayer(scenes, target_filename, build_target, build_options); if (res.Length > 0) { throw new Exception("BuildPlayer failure: " + res); } } }
'개발 일기' 카테고리의 다른 글
Jenkins와 Bitbucket 연동하기 (2) | 2018.07.27 |
---|