2016-04-22 9 views
1

У меня есть эта запись в нашем dsl.groovyИспользовать значение, возвращенное сценарий оболочки Unix затем присвоить его downstreamParameterized в Дженкинс

downstreamParameterized { 
    trigger('apache_server') { 
    parameters { 
     predefinedProp('APP_PACKAGE_VERSION', "\${APP_PACKAGE_VERSION}") 
    } 
    } 
} 

Если вы заметили, значение поступает из APP_PACKAGE_VERSION в stringParam. То, что я хотел бы сделать, это использовать значение, возвращаемое моим скриптом unix (этот скрипт уже существует). Как написать код в groovy?

+0

Я нашел решение, используя плагин EnvInject, но для чего это код в dsl.groovy? – devwannabe

ответ

-1

Если это является переменной окружения для Jenkins, то вы можете использовать как этот

foo = build.buildVariableResolver`.resolve("FOO") 
println "FOO=$foo" 

См https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin

+0

Я действительно получил его для работы с использованием «Инъекционные переменные среды» и файла env.properties. Однако мне нужно преобразовать его так, чтобы он находился внутри dsl.groovy. – devwannabe

0

работы DSL использует Groovy и Groovy включает execute метод для String, чтобы сделать выполнение оболочки можно:

println "script.sh".execute().text 

Yo u можете узнать больше об этом, следуя этому article.

Звонок на execute() будет разрешен во время работы двигателя DSL. Поэтому сгенерированный проект уже будет иметь выходное значение.

Если вы хотите называть свой скрипт каждый раз, когда строится работа, я предлагаю использовать Groovy plug-in.

+0

Вот что я сделал в нашем dsl.groovy, и он работал очень хорошо. SOME_VAR = sprintf ('\ $ {% s}', ['SOME_VAR']) – devwannabe

+0

Я также не уверен, что мы используем. Я видел другой файл dsl.groovy от разных команд, но я не видел никакого кода, содержащего «def» – devwannabe

+0

@devwannabe. Как это решение связано с получением вывода из сценария оболочки? – luka5z

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

  • Нет связанных вопросов^_^