Xcode Bot : Git Stoxkodule이 초기화되지 않았습니다
-
21-12-2019 - |
문제
OSX 서버로 Xcode Bot를 설정하려고합니다. Git 저장소를 구성하고 봇을 만들면 통합을 실행합니다. 저장소가 부분적으로 만 검사되기 때문에 실패합니다. 보다 정확하게 : 6 개의 서브 모듈이 구성된 6 개의 서브 모듈만이 초기화되고 체크 아웃됩니다.
didi@mac:/Library/Server/Xcode/Data/BotRuns/Cache/c5fda8f4-4d25-4d25-c18a-eb0b16a06692/source$ git submodule status
+c6e8420aec4147641fb1ca12d9f1d31bdd804e77 libs/asi-http-request (v1.7-320-gc6e8420)
-ae64a38766b42f236bb94f0e661cddb829f9ac43 libs/kraken
-7da02b323636bbaa0bbbf5b4eb229fcc07b1e14a libs/route-me
152f9ee5576e710705a49032253d7d5af5366f9c libs/routing (152f9ee)
347aaf74fe0c6388785095efdbf6397851514b7f libs/rtlabel (1.0-32-g347aaf7)
-562cf6b1c879f03546f5184e012cea15c4f159db libs/skmaps
.
(- 초기화되지 않음)
봇 로그를보고,
를 초기화합니다....
Checking connectivity... done
Submodule 'libs/asi-http-request' (https://github.com/BikeCityGuide/asi-http-request.git) registered for path 'libs/asi-http-request'
Submodule 'libs/routing' (ssh://mac_ci@rooty.bikecityguide.org/var/repos/librouting.git) registered for path 'libs/routing'
Submodule 'libs/rtlabel' (https://github.com/BikeCityGuide/RTLabel.git) registered for path 'libs/rtlabel'
Cloning into 'libs/asi-http-request'...
...
.
여기에 오류 메시지가 없거나 다른 곳에서는 아무런 오류 메시지가 없습니다. E.g의 단일 언급은 없습니다. 로그의 "Kraken"(누락 된 서브 모듈의 이름).
수동으로 체크 아웃 할 때 (클론, 서브 모듈 init, 서브 모듈 업데이트), 모든 서브 모듈이 초기화됩니다.
.gitmodules는 다음과 같습니다 :
$ cat .gitmodules
[submodule "libs/asi-http-request"]
path = libs/asi-http-request
url = https://github.com/BikeCityGuide/asi-http-request.git
[submodule "libs/rtlabel"]
path = libs/rtlabel
url = https://github.com/BikeCityGuide/RTLabel.git
[submodule "libs/routing"]
path = libs/routing
url = ../librouting.git
[submodule "libs/kraken"]
path = libs/kraken
url = ../kraken_ios.git
[submodule "libs/route-me"]
path = libs/route-me
url = ../route-me.git
[submodule "libs/skmaps"]
path = libs/skmaps
url = ../skmaps.git
.
상대 URL을 사용한 기본 저장소와 4 개의 서브 모듈 리포지토리는 모두 SSH 인증이 필요합니다. OSX Server에서 설정 한 사용자는 모두에 액세스 할 수 있습니다. 봇의 로그에는 누락 된 서브 모듈을 끌어들이려고 할 흔적이 없습니다.
i 로컬 저장소를 수동으로 수정할 수는 있지만 새로운 프로젝트와 새로운 서브 모듈이 추가 된 문제를 다시 사용하지 않으려는 것입니다.
git 버전 1.8.4.2
나는 아이디어가 없어.
해결책
Xcode 6.1.1 및 OS X Server 4.0에서는 분리 된 머리 문제가있는 서브 모듈을 수정 한 것처럼 보이지만 여전히 버그가 있습니다.내 프로젝트 중 하나는 Xcode Server가 완전히 무시할 수 있도록 하나의 해당 하위 그룹이 있으므로 앱이 빌드되지 않습니다.
$ git submodule
8a88bc41c9dc0f57c921d82bc4e7b93e1c4cbf7a InAppStore (heads/master)
e4203f9f61d2546868c1274da5c7a0c56b87a737 Libraries (heads/master) <--- IGNORED
01902f255e6c3d90f0db41cb62dd2934098b98dd MixpanelTracker (heads/master)
e2bee59accd817d50dff881a42c9e9afe307226f XLFacility (1.4.1-5-ge2bee59)
.
Me for for for the Pre-Integration 스크립트 트리거를 다음과 같이 추가하는 것이 었습니다.
cd "$XCS_SOURCE_DIR/{YOUR_APP_REPO_NAME_WITHOUT_DOT_GIT_SUFFIX}"
git submodule update --init --recursive
.
이 시점에서는 체크 아웃이 깨끗하지 않거나 그런 식으로 치명적이지 않은 경고가 있음에도 불구하고 건물이었습니다.그들은 봇의 구성으로 "항상"로 설정되어 "항상"로 설정되어 왔을 때 멀리 떨어져있었습니다.
다른 팁
XCode 9 서버에서는 작업 공간의 XCode 프로젝트 중 하나가 Xcode 프로젝트 중 하나가 참조하지 않으면 서브 모듈이 초기화되지 않습니다.
코드의 일부가 아닌 서브 모듈에서 헤더 파일을 포함하고 프로젝트에 추가하는 대신 "헤더 검색 경로"(C / C ++)에 추가 된 "헤더 검색 경로"(C / C ++)에 추가 할 때이를 위해 발생할 수 있습니다..
가능한 해결 방법은 하위 모듈에서 Xcode 프로젝트에 하나 이상의 파일을 추가하는 것입니다.그것은 심지어 Readme.md
파일 일 수 있습니다.
이것은 XCODE 서버를 사용하여 GIT 자격 증명을 저장하기 위해 xcode 서버를 사용하기 때문에 사용자 지정 스크립트를 사용하여 서브 모듈을 체크 아웃하는 것보다 쉽습니다.
나는 그 버그를 이해하고 있습니까? 나는 똑같은 문제가 있고 분리 된 서브 모듈에 문제가 있음을 발견했습니다. 이 문제를 해결하는 방법을 보여주는 다음 문서를 참조하십시오 (공용 저장소에 도움이되지 않음). http://ikennd.ac/blog/2013/10 / xcode-bots-common-reference-and-comporator /
이것이 당신을 돕기를 바랍니다.