#git #jenkins
#git #дженкинс
Вопрос:
У меня есть конвейер сборки с репозиторием с несколькими вложенными подмодулями, которые отличаются от ветки к ветке. Это приводит к постоянному сбою команды «checkout scm», поскольку она сталкивается с неотслеживаемыми файлами и завершается.
В результате мне приходится выполнять проверку Git вручную (что нормально, у меня есть код для этого). Однако в результате currentBuild.changeSets не заполняется.
Есть ли способ либо вручную заполнить это (похоже, оно доступно только для чтения), либо вручную заставить Дженкинса заполнить его? Эта структура требуется для моих уведомлений по электронной почте и для веб-интерфейса пользователя, чтобы сообщать о журнале изменений.
Ответ №1:
В итоге я решил свою проблему, используя проверку GitSCM с отключенными подмодулями для суперпроекта, а затем вручную вызвал обновление подмодуля (требуется помощник с учетными данными на моей машине сборки). Что-то вроде…
checkout([
$class: 'GitSCM',
branches: [[name: "<Branch Name>"]],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'LocalBranch']] [[$class: 'SubmoduleOption',
disableSubmodules: true,
parentCredentials: true,
recursiveSubmodules: false,
reference: '', trackingSubmodules: false]],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: '<ID>',
url: '<url>']]
])
// Manual submodule update
git submodule update --init --recursive