Как использовать сгенерированные переменные из одного задания в потоке сборки jenkins и использовать их для следующего задания в том же потоке сборки jenkins
У меня есть 3 задания, сконфигурированные в потоке сборки jenkins, и желаемое действие - получить динамические переменные, полученные в результате задачи пост-сборки от b1 до b2 и переменных от b2 до b3 и так далее, и так далее.
list = ["foo", "bar"]
b1 = build("ExecuteJob1", param1: list[idx])
b2 = build("ExecuteJob2", param1: <some dynamic variable from b1>)
b3 = build("ExecuteJob3", param1: <some dynamic variable from b2>, param2: some dynamic variable from b1)
Как указано выше, есть динамические переменные, сгенерированные каждым предыдущим заданием (как часть действия посткомпоновки - в одном случае я использую плагин- установщик описания для генерации одной динамической переменной, а в другом я хочу, чтобы BUILD_URL из b1 использовался в b3)
Чтобы добиться этого, я наткнулся на сообщение, присутствующее в этой ссылке, и использовал плагин EnvInject. Используя это, я выполнил следующее -
- Я создал задание (envInj), чтобы внедрить эти динамические переменные в среду
- Я использовал это задание envInj в качестве задания после условия для b1 и дал некоторое время между b1 и b2, чтобы убедиться, что задание после условия выполняется до начала b2.
- Это фактически вводит переменные, необходимые для окружения (если отмечено в журналах консоли, а также переменные окружения задания envInj).
Но проблема, с которой я сталкиваюсь, заключается в том, что эти вновь введенные переменные недоступны для доступа b2, и тот же случай для b3.
Итак, есть ли возможность перевести эти переменные b1 в b2 (и т. Д. И т. П.), Или есть ли лучший способ достичь желаемого?
1 ответ
Я получил решение для вышеуказанного вопроса, как указано @Dave Bacher в приведенной выше ссылке,
- Я записал параметры в файл, используя пакетный скрипт в плагине Post Build Task.
- Этот файл был внедрен обратно в среду с помощью плагина EvnInj.
Это позволило мне получить доступ к этим параметрам в других заданиях потока сборки
b1 = build("ExecuteJob1", param1: list[idx]) b2 = build("ExecuteJob2", param1: b1.dynamicVariableX) b3 = build("ExecuteJob3", param1: b1.dynamicVariableY, param2:nb2.dynamicVariableZ)
Это прекрасно работает, позволяя получить доступ к динамическим переменным через среду