Как заставить Generic Webhook Trigger Plugin работать с многоотраслевыми конвейерами в Jenkins? - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь настроить сценарий, в котором на github создается запрос на извлечение, который запускает многоотраслевой конвейер Jenkins, и где этот многоотраслевой конвейер использует плагин Generic Webhook для извлечения значений из запроса POST, отправленного с github jenkins для использоваться в сценарии.

К сожалению, как описано в Универсальном плагине триггера Webhook wiki:

Примечание. При настройке из конвейера этот конвейер необходимо запустить один раз, чтобы применить конфигурацию триггера плагина, и после этого этот плагин сможет запускать задание. Так работает Дженкинс, а не то, что реализовано в этом плагине. Этого можно избежать, используя Job DSL и заставляя Job DSL создавать конвейерные задания с подключаемым модулем, настроенным в этом DSL.

Это будет нормально при использовании обычного конвейера, так как он будет единовременным при создании задания Дженкинса. Проблема, однако, заключается в том, что многоотраслевой конвейер будет создавать новое задание всякий раз, когда создается новый ответвление / PR, и это означает, что для каждого запроса на получение, который я создаю на github (который запускает мой сценарий многоотраслевого конвейера), я затем нужно запустить его дважды, чтобы сработала общая функциональность webhook. Необходимость повторной подачи каждого PR была бы утомительной для долгосрочных проектов.

Мне кажется, что есть два возможных подхода к решению / улучшению этой проблемы. Один из них - попытаться поиграть с DSL Jobs (как предложено в вики); но я попробовал это и не смог заставить его работать (это добавляло огромную сложность к настройке, поэтому я отказался от него сейчас).

Второе возможное решение заключается в следующем: когда PR создается в github, общий Webhook вызовет создание нового задания в многоотраслевом конвейере, соответствующем этому PR; при первом запуске многоотраслевого конвейера первая сборка этого вновь созданного задания завершится неудачей по причине, указанной в приведенной выше цитате; но тогда решение может включать проверку того, что первое задание не выполнено, и как-то сказать Дженкинсу, чтобы он попытался заново выполнить это задание.

Итак, мой вопрос относится к этому второму подходу: как я могу наиболее аккуратно запустить перестройку для этого многоотраслевого конвейера при создании PR на github?

Любые советы / предложения будут оценены!

1 Ответ

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

На самом деле это не верно для многоотраслевых конвейеров .Просто обычные трубопроводы должны работать дважды.

Я обновил документы, например:

При настройке из конвейера (не многоотраслевого конвейера) ...

...