Сборка в Jenkins на каждый коммит (Склеивание задач)

jenkins
Теги: #<Tag:0x00007fedb87ad9a8>

(Максим Козырев) #1

Всем привет, ситуация следующая:

Имеем дженкинс и гитлаб. Необходимо чтобы проект собирался на каждый поступающий в репозиторий (смотрим для одной ветки) коммит. Все бы хорошо, однако возникает проблема.
Допустим, проект собирается 10 минут. На коммит дженкинс среагировал, однако пусть в это время (во время выполнения сборки) на ветку попадает еще 2-3 коммита. В результате дженкинс их “сольет вместе” в один джоб, что есть не очень правильно. Получим что проект в джобе собран единожды по последнему коммиту. Однако необходимо чтобы собирался каждый коммит, а не последний.
Я понимаю, что проблема в том, что последовательные задачи объединяются в очереди. При параллельной сборке у меня получалось одновременно билдить 2 образа, остальное снова склеивалось в очереди

Отсюда вопросы:

  1. Как увеличить число параллельно выполняемых джобов с 2 до какого либо числа (или вообще снять ограничение). Подчиненные машины не предлагать :wink:
  2. Как сделать так, чтобы джобы не склеивались в очереди
  3. Пусть мы в локальном репозитории сделали несколько коммитов, потом сделали push на сервер гитлаба (связанного с дженкинсом). Как сделать так, чтобы он собрал каждый коммит с пуша?

Заранее благодарю всех за советы и ответы

UPD: ответ на 1й вопрос очевиден, однако интересен 2й и 3й


(vmaximv) #2

(Максим Козырев) #3

читал, там эту проблему не решили особо. Попробовал плагин с рандомной строкой - он не сработал
Притом начальные условия отличаются - у него SCM, у меня Git. У него идет опрос по времени, у меня через вебхук