Я пишу декларативный конвейер Jenkins, который объединит ветку из одного репо (Test в моем примере) с веткой другого репо (TestDownStream в моем примере). Тем не менее, я сталкиваюсь с проблемой, когда Git застревает на этапе выборки (проверка git с учетными данными работает нормально). У меня есть учетные данные для моей учетной записи git, хранящиеся в диспетчере учетных данных Jenkin. Мой код выглядит следующим образом:
pipeline{
agent any
stages{
stage("Source Control CheckOut"){
steps{
echo "Pulling from Source Control"
git (branch: 'master',
credentialsId: 'JenkinsGit',
url: 'http://testgit.company.com/JenkinsGit/TestDownStream.git')
bat 'git remote add Test http://testgit.company.com/MyRepo/Test.git'
bat 'git fetch Test'
bat 'git merge Test/master'
bat 'git push'
bat 'git remote rm Test'
}
}
}
}
Я предполагаю, что выборка выполняется под учетной записью службы Jenkins вместо учетных данных, указанных ID JenkinsGit. Есть ли способ заставить все командные команды запускаться с теми же учетными данными (JenkinsGit), что и команда git checkout в моем примере выше?
Кроме того, если я пытаюсь перенаправить любые ошибки удаленного добавления gitкоманда в nul, сборка по-прежнему завершается с ошибкой «скрипт вернул код завершения 128». Журналы не показывают ошибок, хотя. Команда git remote add выглядит следующим образом:
bat 'git remote add Test http://testgit.company.com:3000/MyRepo/Test.git 2> nul'
Сервер Jenkins работает в Windows.