На этой странице, описывающей стекопоток, вы можете извлекать запросы извлечения битового сегмента в Jenkins с помощью стандартного триггера веб-крюка.
Предварительные условия:
Jenkins: 1) Установка универсального подключаемого модуля триггера Webhook и подключаемого модуля Bitbucket в Jenkins
2) Настройка «конечных точек Bitbucket» в конфигурации Jenkins.
3) Создание примера задания «Pipeline» в Jenkins (можно настроить универсальный плагин webhook / настроить репозиторий bitbucket / включить собственный путь к файлу Jenkins)
Bitbucket: 4) Конфигурирование Webhook в репозитории bitbucket для подключения к плагину Jenkins webhook и проверка «События» - Push, Комментарий добавлен.
Теперь при условии, что вы можете запускать задание Jenkins из вашего PR Bitbucket с помощьюкомментирование.
У меня возникла проблема с клонированием запросов на запуск битового сегмента после запуска.Это связано с конфигурацией Git SCM.
Ниже описан способ, с помощью которого я решил эту проблему.
1) В вашем примере конвейерного задания установите флажок «Печать содержимого публикации» в разделе «Общие».Плагин Webhook.Содержимое json можно увидеть в выводе консоли задания.
2) Создайте переменную ' BRANCH ' в разделе 'Параметры содержимого публикации' со значением выражения:
$.pullRequest.fromRef.displayId
(может быть получен из содержимого публикации в выводе консоли) и проверьте «путь JSON».
Ниже приведена конфигурация Git SCM для конвейера:
Name: origin
RefSpec: +refs/heads/${BRANCH}
Branches to build
Branch Specifier (blank for 'any'): **/pull-requests/**
Мне удалось решить проблему этого клонированного PRпосле настройки вышеуказанным способом.
Я пытался использовать идентификатор bitbucket pr, но работал только в «Конвейерном скрипте», когда пытался извлечь PR, как показано ниже:
checkout([$class: 'GitSCM',
branches: [[name: 'FETCH_HEAD']],
extensions: [[$class: 'LocalBranch']],
userRemoteConfigs: [[refspec: "+refs/pull-requests/${PR_ID}/from:pr/${PR_ID}", credentialsId: '*****', url: 'https://stash***************.git']]
])
, где PR_ID имеет значение выражения
$.pullRequest.id