#git #jenkins #jenkins-declarative-pipeline #gitversion #jenkins-git-plugin
#git #дженкинс #jenkins-декларативный конвейер #gitversion #jenkins-git-plugin
Вопрос:
Я пытался найти конфигурацию источника ветки для извлечения, по крайней мере develop
, и master
удаленных ветвей, в дополнение к ветке, для которой выполняется задание, с нулевым успехом.
Мой вариант использования — определение версии из имен ссылок git и фиксация сообщений с помощью GitVersion. Пока что единственное решение, которое я нашел, является громоздким и непереносимым, поскольку оно требует предоставления учетных данных для командной строки git, когда не выполняется с локальным ( file:// ) репозиторием.
sh "git fetch origin master:master"
sh "git fetch origin develop:develop"
должен ли я написать пользовательское GitSCMExtension
решение для получения такого поведения?
Ответ №1:
Похоже, ссылки для удаленных ветвей ( origin / {branch} ) фактически извлекаются, только не создаются соответствующие локальные отслеживающие ветви ( origin / {branch} -> {branch} ), что отключает GitVersion. Похоже, что сообщение об ошибке, которое оно выдает, напрямую противоречит этой конфигурации по умолчанию:
System.InvalidOperationException: Could not find a 'develop' or 'master' branch, neither locally nor remotely.
Решение найдено в https://github.com/GitTools/GitVersion/issues/1049#issuecomment-585878737
которая заключалась в настройке GitVersion для фактического учета /origin/master и /origin/develop
develop:
# (..)
regex: (^dev(elop)?(ment)?$|^origin/dev(elop)?(ment)?$)
master:
# (..)
regex: (^master$|^origin/master$)