Дженкинс строит для ветки на запущенной ветке? - PullRequest
0 голосов
/ 07 марта 2019

У меня есть задание Jenkins, которое запускается при обновлении ветви.

Для спецификатора ветви задано значение Любой: Branch Specifier (blank for 'any')

Однако я считаю, что шаги сборки выполняются в самой последней ветви, а не в ветви, которая подталкивает ее к запуску Jenkins.задание.

Вывод сборки показывает:

+refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/* 
Seen branch in repository origin/1 
Seen branch in repository origin/2 
Seen branch in repository origin/3 
Seen branch in repository origin/4 
Seen branch in repository origin/5
Seen branch in repository origin/master 
Seen branch in repository origin/6 
Seen branch in repository origin/7
Seen branch in repository origin/8 
Seen branch in repository origin/9
Seen 10 remote branches

Переход к ветви origin/7 вызвал задание Jenkins, однако шаги сборки выполняются на ветви origin/1.

Как мне убедиться, что шаги сборки выполняются в той же ветке, которая запускает задание?(В моем случае origin/7)

1 Ответ

1 голос
/ 07 марта 2019

Существует более одного решения. Это зависит от того, где вы запускаете задание и как настроено задание.

В качестве примеров:

Если это простое задание , вы можете установить параметр для его конфигурации и передать его через ваши хуки (вам, вероятно, понадобится параметризованные сборки для плагина Jenkins ):

Добавить параметр к вашей работе:

enter image description here

А затем установите значение параметра для ветви для построения (через $ParameterName):

enter image description here

Если триггер настроен , например, из вашего приложения - вы должны передать значение через вызов http://yourJenkinsServer/job/myJobName/buildWithParameters?token=TOKEN&PARAMETER=Value

Более подробно вы можете найти в документации к плагину. Token вот маркер безопасности Jenkins для вашей учетной записи.

Если вы запускаете задание через VCS : вы также можете передать этот параметр, это зависит от того, каким VCS-сервером вы пользуетесь, и какими способностями он должен это делать. Например, для Bitbucket Server это может быть:

Так что вам нужно найти, что подходит вашему серверу VCS.

В качестве дополнительного примера: для многоотраслевых конвейерных проектов вы можете просто использовать переменную окружения BRANCH_NAME и использовать git branch: "${BRANCH_NAME}" внутри кода конвейера. И это проще в настройке и использовании.

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