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 |
|---|