начальное задание не передает переменную среды в отличный dsl-скрипт

Я использую плагин job-dsl. В моем начальном задании 'a' я устанавливаю переменную среды сборки, используя параметр 'Ввести переменные среды в процесс сборки' и предоставляя переменную среды следующим образом в 'Содержимое свойств':

SERVERADDRESS=abc

Теперь то же начальное задание также обрабатывает DSL заданий, как показано в разделе «Сборка» следующим образом:

Look on Filesystem = enabled
DSL Scripts = **/*.groovy
Action for removed jobs = Ignore
Action for removed Views = Ignore

теперь включенные выше Groovy-скрипты создают другое задание 'b', в котором я пытаюсь получить доступ к значению переменной 'SERVERADDRESS' следующим образом:

goals('-DserverAddress=${SERVERADDRESS}')

но к указанной выше переменной я не могу получить доступ в моем отличном скрипте. Я могу получить доступ к стандартной переменной среды, например, JOB_NAME, BUILD_ID, BUILD_TAG и т. Д. В задании 'b', но пользовательская переменная (SERVERADDRESS), которую я определил в задании 'a', недоступна.

Есть ли способ, с помощью которого мы можем получить доступ к пользовательским переменным в исходных заданиях для дочерних заданий, созданных исходным заданием?


person Pankaj Verma    schedule 15.05.2017    source источник
comment
Если у вас есть только несколько переменных, вы можете создать параметризованные задания для последующих заданий и передать переменные среды в родительском задании в качестве параметра дочернему заданию.   -  person Tuffwer    schedule 16.05.2017
comment
Дочерние рабочие места, создаваемые семенным заданием, на самом деле не являются последующими заданиями по сравнению с семенным заданием. Просто это seed job создает еще два рабочих места с помощью отличного скрипта.   -  person Pankaj Verma    schedule 16.05.2017


Ответы (1)


Если вы используете envInject только для установки пользовательских параметров (вместо внедрения файла с параметрами), используйте опцию «Этот проект параметризован» в своем начальном задании и задайте там параметры.

Вы можете получить эти переменные с помощью binding.variables.get('<your variable name>')

person matijasx    schedule 25.05.2017