Xcode Bot: подмодулы GIT не инициализированы
-
21-12-2019 - |
Вопрос
Я пытаюсь настроить бот Xcode с сервером OSX. После настройки репозитория Git и создание бота я бегаю интеграцию. Это не удается, потому что репозиторий проверяется только частично. Точнее: из 6 настроек подмодулей, только 3 инициализированы и вычеты.
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'...
...
.
Нет сообщения об ошибке здесь или где угодно. Нет единого упоминания об е. «Кракен» (название пропавшего подмодуля) в любом месте в журналах.
При проверке вручную (клон, подмодуль 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
.
Базовый репозиторий и 4 репозитории подмодуля, на которые ссылается относительный URL, все необходимость аутентификации SSH. Пользователь, настраиваемый на сервере OSX, имеет доступ ко всем их. Журнал бота не содержит следов пытаться потянуть недостающие подмодулы.
Я могу вручную зафиксировать локальный репозиторий, но я хотел бы, чтобы еще раз не иметь такой же проблемы с новыми проектами и добавленными новыми подмодулями.
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)
.
Исправление для меня было добавить триггер для скрипта до интеграции как таковой:
cd "$XCS_SOURCE_DIR/{YOUR_APP_REPO_NAME_WITHOUT_DOT_GIT_SUFFIX}"
git submodule update --init --recursive
.
На данный момент вещами строились, хотя были не смертельные предупреждения о проверке, не быть чистым или что-то в этом роде.Они ушли, когда я изменился на конфигурацию бота, чтобы «убирать», установленную на «всегда».
Другие советы
в сервере xcode 9, подмодулы не инициализируются, если ни один из файлов подмодулей не будет ссылаться на один из проектов Xcode в рабочей области.
Это может произойти, например, когда вы включите файл заголовка из подмодуля, который не является частью вашего кода, и поэтому вы добавили его в «Путей поиска заголовков» (C / C ++) вместо добавления его в проект,
Возможный обходной путь состоит в том, чтобы добавить хотя бы один файл из подмодуля в проект Xcode.Это может даже быть файлом Readme.md
.
Это проще, чем проверка подмодулей, использующих пользовательский скрипт, поскольку он опирается на XCode Server для хранения ваших учетных данных GIT.
Я понимаю его ошибку. У меня были те же проблемы и обнаружили, что есть проблема с отдельными подмодулями. Смотрите следующую статью, которая показывает, как исправить эту проблему (не помогает в публичном хранилище) http://ikennd.ac/blog/2013/10 / XCODE-BOTS-CONLECTION-ПРОБЛЕМЫ и обходные пути /
Надеюсь, это поможет вам.