Конфигурация GIT SCM для извлечения запросов на получение битового сегмента с использованием общих параметров Webhook - PullRequest
0 голосов
/ 19 июня 2019

На этой странице, описывающей стекопоток, вы можете извлекать запросы извлечения битового сегмента в 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

1 Ответ

0 голосов
/ 19 июня 2019

Также вы можете попробовать конфигурацию GIT SCM, используя:

Name: FETCH_HEAD`
RefSpec: +refs/heads/*:refs/remotes/origin/*
Branch Specifier: **/${BRANCH}
Additional Behaviours:
1. Wipe out repository & force clone
2. Clean after checkout 

где значение BRANCH равно '$ .pullRequest.fromRef.displayId', полученное из общих параметров публикации триггера Webhook.

...