Я пытаюсь настроить сценарий, в котором на 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?
Любые советы / предложения будут оценены!