2015-05-07 2 views
24

Я запускаю сценарий оболочки из Jenkins. Эти скрипты получают дату и экспортируют ее как переменную среды $ DATE. Мне нужно использовать эту $ DATE внутри той же работы Дженкинса. Я сделал работу в качестве сборки параметров. Создал строковый параметр как значение DATE как DATE = $ DATE. Но это не работает.Передача переменной из сценария оболочки в jenkins

Пожалуйста, предложите !!

+0

Непонятно, что вы говорите - вы устанавливаете 'DATE' в качестве параметра или экспортируете' DATE' из шага сборки «Выполнение оболочки»? –

+0

Привет, Я пытаюсь экспортировать его из сценария, который работает в задании Дженкинса, на ту же работу Дженкинса. – user3232823

ответ

55

Вы упомянули, что экспортируете переменную среды DATE в сценарий оболочки, который, предположительно, запускается с помощью шага «Выполнение оболочки».

Проблема в том, что после завершения этапа оболочки эта среда исчезла - переменные не будут перенесены на последующие шаги сборки.
Поэтому, когда вы позже попытаетесь использовать значение $DATE - будь то на другом этапе сборки или в качестве параметра для другого задания - эта конкретная переменная среды больше не будет существовать.

Вместо этого вы можете использовать EnvInject plugin для экспорта переменных среды во время сборки. Переменные, созданные с использованием этого плагина, будут доступны для всех последующих этапов сборки.

Например, вы могли бы написать DATE в поле свойств на этапе один сборки:

echo DATE=$(date +%Y-%m-%d) > env.properties 

Затем можно добавить «Вводить переменные среды для задания» построить шаг и ввести env.properties в " Environment File File Path ".

Таким образом, переменная DATE (и все остальное в этом файле свойств) будет экспортирована и будет видна остальным этапам сборки.

+0

Очень хорошее решение. Спасибо – user55926

+0

Спасибо. К сожалению, Jenkins по умолчанию не поддерживает эту функциональность. То, что я пытался найти, - лучший способ автоматически выводить все переменные, установленные в сценарии оболочки, в файл свойств в одной команде. Одна из моих задач должна создать около 15 переменных на основе каталогов, имен файлов, временных меток и т. Д. Затем мне понадобилось бы 15 команд эха для вывода в файл свойств. И если бы я добавил дополнительные переменные, мне также нужно было бы обеспечить их вывод. Было бы неплохо запустить команду, похожую на «env», которая выводит все определенные переменные. – leeman24

+0

Очень жаль, что Дженкинс не поддерживает его из коробки. Спасибо за этот ответ. –

Смежные вопросы