Как использовать сгенерированные переменные из одного задания в потоке сборки 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. Используя это, я выполнил следующее -

  1. Я создал задание (envInj), чтобы внедрить эти динамические переменные в среду
  2. Я использовал это задание envInj в качестве задания после условия для b1 и дал некоторое время между b1 и b2, чтобы убедиться, что задание после условия выполняется до начала b2.
  3. Это фактически вводит переменные, необходимые для окружения (если отмечено в журналах консоли, а также переменные окружения задания envInj).

Но проблема, с которой я сталкиваюсь, заключается в том, что эти вновь введенные переменные недоступны для доступа b2, и тот же случай для b3.

Итак, есть ли возможность перевести эти переменные b1 в b2 (и т. Д. И т. П.), Или есть ли лучший способ достичь желаемого?

1 ответ

Решение

Я получил решение для вышеуказанного вопроса, как указано @Dave Bacher в приведенной выше ссылке,

  1. Я записал параметры в файл, используя пакетный скрипт в плагине Post Build Task.
  2. Этот файл был внедрен обратно в среду с помощью плагина EvnInj.
  3. Это позволило мне получить доступ к этим параметрам в других заданиях потока сборки

    b1 = build("ExecuteJob1", param1: list[idx])
    b2 = build("ExecuteJob2", param1: b1.dynamicVariableX)
    b3 = build("ExecuteJob3", param1: b1.dynamicVariableY, param2:nb2.dynamicVariableZ)
    

Это прекрасно работает, позволяя получить доступ к динамическим переменным через среду

Другие вопросы по тегам