Дженкинс Декларативный Трубопровод - Git застрял при получении - PullRequest
0 голосов
/ 22 октября 2019

Я пишу декларативный конвейер 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...