user.name и user.email неправильно передаются при запуске PreBuildMerge на ведомом устройстве / контейнере - PullRequest
0 голосов
/ 18 июня 2020

Я выполняю задания на 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, который не вообще не работает.

...