Как поставить в очередь задание Дженкинса из запроса TFS с объединенной ветвью - PullRequest
0 голосов
/ 04 февраля 2019

У нас есть Git-репозиторий в TFS (2017.3), и наши сборки выполняются на Jenkins.

Мы хотим реализовать в Pull Request проверку сборки, поэтому мы создали определение сборки, которое ставит в очередь задание Jenkins и в«Параметры задания» мы вводим BRANCH=$(System.PullRequest.SourceBranch):

enter image description here

Проблема заключается в том, что на этапе получения источников TFS TFS создает временно объединенную ветвь для проверкиPR, но System.PullRequest.SourceBranch возвращает исходную ветку PR (например, функциональную ветвь), а не объединенную ветвь, поэтому задание Jenkins запускается в исходной ветке и не проверяет PR.

Можем ли мы отправить Jenkinsобъединенная ветвь или мы должны выполнить слияние в задании Дженкинса?

ОБНОВЛЕНИЕ:

Я вижу, что переменная Build.SourceBranch возвращает объединенную ветвь, но выглядит какработа Дженкинс не знаю эту ветвь.Я проверил сейчас в агенте, а Git находится в Detached HEAD, поэтому я предполагаю, что нет никакой возможности получить извне агента (даже если агент создал новую ветвь - «объединенная ветвь», она только локальная).есть идеи?

1 Ответ

0 голосов
/ 03 апреля 2019

Я предполагаю, что вы используете плагин Jenkins TFS для запуска задания Jenkins.

В этом случае согласно плагину официальная документация (раздел 'Git') вам нужно добавить +refs/heads/*:refs/remotes/origin/* +refs/pull/*:refs/remotes/origin-pull/* вПараметр Refspec в шаге Git Checkout.

TFS сохраняет коммиты слияний по запросу на извлечение во временных ветвях с именем pull/<PR number>/head.Добавив Refspec, вы позволите Дженкинсу получать эти результаты фиксации слияния.У меня работает.

...