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