Есть ли способ ограничить количество сборок Jenkins, запускаемых событием слияния Gerrit, которое было отправлено с помощью «Отправить с родителями»?

После завершения серии локальных коммитов в локальную ветку проекта с использованием git и Gerrit, я отправляю эту серию изменений в Gerrit для проверки и, в конечном итоге, объединяю. В Gerrit я вижу кнопку «Отправить с родителями» для всех этих коммитов, кроме одного. Это ожидаемое поведение, и я понял, почему.

В Jenkins я также использую Jenkinsfile для построения своих пайплайнов и при этом также использую подключаемый модуль Gerrit Triggers, чтобы реагировать на поток событий в Gerrit. В частности, я подключаюсь к событию слияния, чтобы запускать готовые к выпуску сборки для целей тестирования.

Когда я отправляю каждое изменение по отдельности, Дженкинс запускает сборку и продвигается вперед, создавая вещи по одной за раз. Но... Если я объединяюсь с родителями (предположим, что реализована большая функция), Геррит запускает событие для каждого отдельного коммита в серии. Что мне любопытно узнать, так это то, есть ли способ в Дженкинсе или Геррите обрабатывать событие только от дочернего коммита и опускать события для родителей?


person Joshua    schedule 30.05.2019    source источник


Ответы (1)


У Дженкинса/Геррита нет способа справиться с этим, но я предложу несколько обходных путей:

1) Вы можете добавить «Тему» к триггеру Геррита на Дженкинсе с чем-то вроде значения «сборки». Делая это, Jenkins будет создавать только объединенные изменения этой темы, и вам нужно всего лишь добавить тему «сборка» к дочернему изменению, чтобы Дженкинс знал, какую фиксацию вы хотите создать.

2) Вы можете изменить триггер Gerrit с «Change Merged» на «Добавленный комментарий содержит регулярное выражение» с чем-то вроде значения «build». При этом Jenkins не будет выполнять сборку при объединении изменений, и вы можете инициировать сборку из дочерней фиксации, просто добавив комментарий «сборка» в дочернее изменение Геррита.

надеюсь, это поможет

person Marcelo Ávila de Oliveira    schedule 30.05.2019