Кажется, я обнаружил ошибку при попытке передать переменные среды из одного задания Jenkins в другое.
У меня есть задание Jenkins, которое содержит шаг сборки Powershell.Мой вопрос не о скрипте Powershell, поскольку он делает именно то, что я хочу (он идет в Artifactory, находит список всех сборок, а затем получает номер сборки последней).Скрипт заканчивается номером сборки Artifactory в виде текстовой строки ' $ LATEST_BUILD_NO_SLASH ' (для ясности, это не номер сборки Jenkins).В конечном итоге это сохраняется как переменная окружения с именем ' LATEST_BUILD_NUM_VAL '
Это определенно создает переменную окружения с моим значением, хранящимся в ней, так как это можетбыть увиденным в списке «Переменные среды».
Эта переменная среды передается стандартным способом на шаге параметризованной сборки.
Моя проблема в том, что когда я использую эту переменную среды в нисходящей сборке, передав ее с использованием ' LATEST_BUILD_NUM = $ {LATEST_BUILD_NUM_VAL }', я получаю' $ {LATEST_BUILD_NUM_VAL} ' в качестве значения, переданного нижестоящему заданию:
Но, если я передам переменную среды, созданную Jenkins, т.е.' LATEST_BUILD_NUM = $ {JOB_BASE_NAME} ' Я получаю правильную переменную в последующем задании:
Я провел весь день, стуча головой об этом идействительно не знаю, куда идти отсюда.Кажется, я правильно создаю переменную среды, так как она есть в списке переменных среды, и она работает, если я использую стандартную переменную среды.Я объявил ' LATEST_BUILD_NUM ' в качестве параметра в моей последующей сборке.
Есть ли другой способ достижения того, что я пытаюсь сделать?
Я зарегистрировался вЖурнал «Jenkins Issues» для проблем с параметризованными сборками , и я не могу найти ничего похожего на мою проблему.
В случае, если это имеет какое-либо отношение, плагин Jenkins Environment Injector - v2.1.6, а плагин Parameterized Trigger - v2.35.2.