Я выполняю задания на Jenkins, который использует как узлы, так и контейнеры, поэтому разные команды не используют ресурсы друг друга. Он отлично работает, за исключением одного задания, которое должно обрабатывать создание файлов .jar. Он использует класс PreBuildMerge во время оформления заказа, и я выделил его как источник проблемы. Вот как выглядит код:
checkout([
$class : 'GitSCM',
branches : [[name: "${env.FROM_BRANCH}"]],
browser : [$class : 'Stash',
repoUrl: "${settings['data_load_repo']}"],
doGenerateSubmoduleConfigurations: false,
extensions : [[$class: 'CleanBeforeCheckout'],
[$class: 'LocalBranch', localBranch: "${env.TO_BRANCH}"],
[$class: 'RelativeTargetDirectory', relativeTargetDir: "${targetProjectDirName}"],
[$class : 'SubmoduleOption',
disableSubmodules : false,
parentCredentials : true,
recursiveSubmodules: false,
reference : '',
trackingSubmodules : false],
[$class : 'PreBuildMerge',
options: [fastForwardMode: 'NO_FF',
mergeRemote : 'origin',
mergeStrategy : 'DEFAULT',
mergeTarget : env.TO_BRANCH]]],
submoduleCfg : [],
userRemoteConfigs : [[credentialsId: settings['bb_credentials_id'], url: "${settings['data_load_repo']}"]]
])
}
Каждый раз, когда он заканчивается ошибкой:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'jenkins@dce20-aem-rollout-r3w27.(none)')
Я уже пытался установить эти значения - как с помощью команд git, так и напрямую для файлов .gitconfig и .git / config, я также установил их в разделе «Дополнительные поведения» в конфигурации задания - нет никакой разницы, я все равно получаю то же сообщение об ошибке. Экспериментируя с кодом, я обнаружил две вещи: -удаление кода, написанного ниже, позволяет нормально выполнять задание (но это не решение, так как его нужно предварительно объединить):
[$class : 'PreBuildMerge',
options: [fastForwardMode: 'NO_FF',
mergeRemote : 'origin',
mergeStrategy : 'DEFAULT',
mergeTarget : env.TO_BRANCH]]
-задание работает нормально при запуске на главном устройстве, а не на контейнере, запущенном на ведомом.
Я не знаю, как решить эту проблему, похоже, нет никакого способа передать user.name и user.email при запуске PreBuildMerge, который не вообще не работает.