У меня есть несколько заданий jenkins, которые запускаются восходящим триггером на build.result = SUCCESS или вручную.Работы имеют круговые зависимости.Например, возьмем такой сценарий:
JOB_1: have as upstream trigger JOB_2
JOB_2: have as upstream trigger JOB_1
Диаграмма:
JOB_1
^ |
| V
<- JOB_2 <-
Если я начну JOB_1, будет создан бесконечный цикл.Чтобы предотвратить это, я исследовал несколько методов.
- использует историю заданий, а когда задание попадает в список заданий, задайте для результата построения значение NOT_BUILT.Однако это не тот метод, который мне нужен, так как я не хочу запускать другую работу, если она была выполнена ранее.Я хотел бы сделать шаг перед сборкой, чтобы предотвратить повторное выполнение задания.
if (currentBuild.rawBuild.getCause (hudson.model.Cause $ UpstreamCause) .toString () .contains (env.JOB_NAME)) {currentBuild.result = 'NOT_BUILT' return}
Используйте плагин: Ограничить причины выполнения сборки. Это не сработает, если я наложу тестовое ограничение на имя задания, и в любом случае это не то, что мне нужно, потому что я хотел бы проверить условие, как описано в1.
Я нашел некоторые подробности о параметризации восходящих триггеров https://wiki.jenkins.io/display/JENKINS/Parameterized+Trigger+Plugin
Есть ли у вас какие-либо материалы по этой теме?Спасибо.