문제

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 /

이것이 당신을 돕기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top