Как Jenkins справляется со следующими сценариями для долгосрочных сборок? - PullRequest
0 голосов
/ 25 марта 2019

Я хочу знать, каков рабочий процесс jenkins в следующем сценарии.

Сценарий 1:

Допустим, выполнение задания сборки занимает 30 минут, а разработчики тем временем отправляют коммиты 1, 2 и 3 в 1-ю минуту, а затем коммиты 4, 5 отправляются в 15-ю минуту. Сможет ли jenkins создать 2 отдельных задания сборки в очереди, если частота опроса для изменения SCM составляет 1 минуту? Или он объединит все 5 коммитов в одно задание на сборку?

Сценарий 2:

Кроме того, что произойдет, если период ожидания установлен на 5 минут с частотой опроса SCM, установленной на 1 минуту, и выполняется долгосрочное задание на сборку, а тем временем 5 коммитов приходят в 1-ю, 4-ю, 11-ю минуты , 15-я и 16-я минуты после начала предыдущего задания по сборке? Будет ли добавлено еще два задания сборки в очередь? Или он объединит эти 5 коммитов в одну сборку?

1 Ответ

0 голосов
/ 25 марта 2019

При опросе каждую минуту в сценарии # 1 Jenkins запускает два отдельных задания, одно для коммитов 1, 2 и 3, а второе для коммитов 4 и 5.

Для сценария № 2,Дженкинс также создаст две работы, если период ожидания будет 5 минут, в зависимости от вашего примера.

Существует несколько решений, которые помогут решить проблему одновременной работы новых и старых сборок.Один из вариантов - использовать плагин Milestone Pipeline , чтобы автоматически прервать выполнение нескольких одновременных заданий, как только одно из них достигнет вехи.

Во-вторых, некоторые плагины SCM, такие как GitHubплагин, поддерживающий функцию триггера сборки Cancel build on update, которая автоматически останавливает выполнение заданий при запуске нового задания через обновление.

Третий вариант - использовать скрипт Groovy, который выполняется как часть сборки, обнаруживает запущенные задания для старых коммитов и прерывает их .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...