Представьте себе задание Jenkins A, выполнение которого занимает 1 минуту, и задание B, которое занимает 5 минут.
Если мы настроим задание A на запуск задания B, в то время как задание B выполняется, задание A может выполняться 5 раз до завершения B. Однако Дженкинс не добавляет 5 сборок в очередь задания B, и это здорово, потому что в противном случае быстрое задание A создало бы постоянно растущее отставание сборок для плохой медленной работы B.
Однако теперь мы хотим, чтобы триггер B задания A был параметризованным заданием, используя плагин параметризованного запуска . Задания с параметрами do ставят в очередь невыполненное задание, что означает, что задание A успешно создает огромную кучу сборок для задания B, которое не может быть в курсе.
Имеет смысл добавлять новую параметризованную сборку в очередь каждый раз, когда она запускается, поскольку параметры могут отличаться. Дженкинс не всегда должен предполагать, что новая параметризованная сборка делает ненужными ранее поставленные в очередь.
Однако в нашем случае нам бы действительно хотелось этого. Job A создает и упаковывает наше приложение, затем Job B развертывает его в производственной среде и выполняет более сложный набор интеграционных тестов. У нас также есть сборка C, которая развертывается в другой среде и проводит еще больше тестов, поэтому для нас это расширяющийся паттерн.
Мы бы хотели, чтобы очередь для нашего параметризованного задания B сохраняла только последнюю добавленную сборку; каждая новая сборка заменяет любое задание, находящееся в очереди.
Есть ли хороший способ добиться этого?