нижележащая работа Дженкинса не прерывается, если восходящая работа прерывается

Две вакансии jenkins связаны следующим образом: Upstream job - это конвейер и запускает работу вольным стилем.

Возможно ли в Jenkins получить следующий сценарий:

Если последующее задание прерывается, восходящее задание прерывается. Но если восходящее задание прерывается, нисходящее задание не должно прерываться, а продолжаться.

Upstream job :
    node('upstream_node'){
    build job: 'downstream_job', wait:true, propagate:false
    }

Я перепробовал все возможные комбинации с опциями «ждать» и «распространять», но ни одна из них не сработает.


person edla    schedule 19.07.2019    source источник
comment
Похоже, вместо 2 рабочих мест у вас должно быть 1.   -  person hakamairi    schedule 23.07.2019


Ответы (2)


Используйте propagate:true вместо false.

Это из документации:

  • распространять (необязательно)
    Если установлено, то, если последующая сборка не удалась (синий шар), этот шаг завершится ошибкой. Если отключено, то этот шаг будет успешным, даже если последующая сборка нестабильна, не удалась и т. Д .; при необходимости используйте свойство результата возвращаемого значения.
person Arnaud Claudel    schedule 19.07.2019
comment
Распространение: true удовлетворяет одному условию. 1 - Если последующее задание прерывается, восходящее задание прерывается. Но это также будет делать: 2 - Если восходящее задание прерывается, нисходящее задание прерывается. Хотя мне нужны номера 1. и 3. Если восходящая работа прерывается, нисходящая работа продолжается. - person edla; 19.07.2019
comment
Тогда я думаю, что это с wait:false. Существует возможность заблокировать последующее задание с помощью плагина параметризованного триггера но я не уверен, что это то же самое, что wait. Ты должен попытаться - person Arnaud Claudel; 19.07.2019
comment
wait: false не удовлетворяет условию №. 1. Что бы ни случилось с нижележащим заданием, вышестоящее не будет затронуто, поскольку не ожидает этого. Уже все комбинации перепробовал. В то время как параметры из «Параметризованного триггерного плагина» нельзя использовать в конвейере, только в произвольной работе. Но все равно спасибо за ваш ответ - person edla; 19.07.2019
comment
Да, конечно, но теперь я не понимаю цели, зачем вам продолжать последующую работу, если вы уже отменили предыдущую? - person Arnaud Claudel; 19.07.2019
comment
Потому что восходящее задание - это такой процесс, что, если он уже начался, он должен завершиться независимо от того, что происходит. Он не должен останавливаться, иначе сломается еще кое-что. Но результат не всегда учитывается. Важно, чтобы однажды начатое закончилось до конца. - person edla; 19.07.2019

Нашел решение.

Использование плагина блокировки в Jenkins

Как можно Я блокирую задание Jenkins 2.x Pipeline, пока создаются зависимые задания

person edla    schedule 23.07.2019