Подмодули Git не обновляются в сборке Jenkins
У меня есть подмодуль в проект в Jenkins. Я включил расширенный параметр для рекурсивного обновления подмодулей.
когда я запускаю сборку, я вижу, что в рабочей области есть файлы из подмодуля. Проблема в том, что это, кажется, первая ревизия подмодуля. Когда я нажимаю изменения (репозиторий, размещенный на GitHub), Дженкинс, похоже, не обновляет подмодуль, чтобы получить правильные изменения. Кто-нибудь когда-нибудь видел это?
6 ответов:
отметим, что плагин для Git и Jenkins 2.0 будет иметь "advance submodule behaviors", который должен обеспечить правильное обновление подмодулей:
как прокомментировал by
vikramvi:
Advanced sub-modules behavior>"Path of the reference repo to use during submodule update" против этого поля , добавьте URL-адрес git подмодуля.
Оуэн Б упоминает in комментарии:
для проблемы аутентификации теперь есть опция "использовать учетные данные из удаленного по умолчанию родительского репозитория"
здесь Дженкинс-20941:
вы знаете, что ваш репозиторий Git всегда ссылается на конкретный редакция из подмодуля? Дженкинс не собирается автоматически изменять ревизию.
Если вы хотите использовать более новую версию подмодуля, вы должны сделать это в своем локальном репозитории Git:
cd submoduledir git pull cd .. git add submoduledir git commit -m 'Updated to latest revision of submoduledir' git push # Go and watch Jenkins build with the new revision of the submoduleкогда вы делаете это так, Дженкинс проверит точно такую же ревизию подмодуля во время сборки. Дженкинс не сам решает, какая редакция подмодуль для использования. Это фундаментальное различие между подмодулями Git и внешними SVN.
вы можете прочитать хорошую ссылку на подмодули, например http://progit.org/book/ch6-6.html.
это описано в документации плагина Git на сайте Jenkins в разделе:рекурсивные подмодулей.
цитатаплагин GIT поддерживает репозитории с подмодулями, которые в свою очередь имеют сами подмодули. Это должно быть включено, хотя: in Настройки Задание -> разделе Управление Исходным Кодом,Git ->Дополнительно (под ветками для сборки) - > рекурсивно обновлять подмодули.
пример
на экране конфигурации вашего задания в разделе Управление исходным кодом потяните добавить кнопка вниз выберите "Advanced sub-modules behavior".
затем выберите "рекурсивно обновить подмодули":
наконец-то наткнулся на способ сделать это, и это просто.
Вопрос:
исходный клон с учетными данными работает нормально, но последующие
submoduleклонирование завершается ошибкой с неверными учетными данными.
- автоматическое расширенное клонирование подмодулей:
Source Code Management >> Additional Behaviours >> Advanced sub-modules behaviours: приводит к ошибке учетных данных.git submodule update --initнаExecute Shellраздел также не работает с ошибкой учетных данных.Решение:
Я использую
jenkins-1.574.
- Регистрация
похоже, я нашел решение:
Я добавил шаг сборки для выполнения следующих команд оболочки:
git submodule foreach git checkout master git submodule foreach git pull
Если вы используете модуль Jenkins Git, вы можете установить его на "стереть рабочее пространство перед сборкой", таким образом, он всегда будет получать правильный подмодуль.






Comments