Мне нужно выполнить сложный рабочий процесс Git как запланированную работу в Jenkins, в многоотраслевом проекте. Я использую плагин workflow-scm для проверки ветви и надеялся использовать необработанные команды git на других этапах конвейера.
Рабочий процесс выглядит следующим образом:
- Проверить ветку под вопросом
- Объединить изменения из другой ветки
- Нажмите
Вот что я сделал:
def SOURCE_BRANCH = "master"
stage('Checkout') {
def map = checkout scm
// for debug
map.each{ k, v -> println "${k}:${v}" }
}
stage('Merge') {
// this is where it fails
sh """
git pull origin $SOURCE_BRANCH
"""
}
stage('Push') {
sh """
git push --dry-run
"""
}
Я получаю сообщение об ошибке:
+ git pull origin develop
fatal: could not read Username for 'http://git-url:port': No such device or address
Следует отметить, git-url
- это пользовательский URL-адрес сервера Bitbucket, настроенный с помощью конфигурации Jenkins.
Я не могу ввести учетные данные Git на этапе сборки, и я не могу получить их из map
, где сопоставлены свойства scm. Для справки map
содержит следующие ключи:
GIT_BRANCH
GIT_COMMIT
GIT_PREVIOUS_COMMIT
GIT_PREVIOUS_SUCCESSFUL_COMMIT
GIT_URL
Буду признателен за любую помощь.