Доступ к переменным среды в параметре расширенного выбора - PullRequest
1 голос
/ 17 января 2020

Я хочу написать сценарий Groovy для параметра расширенного выбора, который будет использовать переменную доступа WORKSPACE. Когда я пытаюсь:

List<String> artifacts = new ArrayList<String>()
artifacts.add(env.WORKSPACE)
asdf = env.WORKSPACE
println asdf
return artifacts

я получаю следующую ошибку:

No such property: env for class: _1775dc8d170bd01576ff2b650850017e
groovy.lang.MissingPropertyException: No such property: env for class: _1775dc8d170bd01576ff2b650850017e
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)
at _1775dc8d170bd01576ff2b650850017e.run(_1775dc8d170bd01576ff2b650850017e:2)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
at com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition.executeGroovyScript(ExtendedChoiceParameterDefinition.java:727)
at com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition.executeGroovyScriptAndProcessGroovyValue(ExtendedChoiceParameterDefinition.java:709)
at com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition.computeValue(ExtendedChoiceParameterDefinition.java:676)
at com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition.computeEffectiveValue(ExtendedChoiceParameterDefinition.java:855)
at com.cwctravel.hudson.plugins.extended_choice_parameter.ExtendedChoiceParameterDefinition.getParameterDefinitionInfo(ExtendedChoiceParameterDefinition.java:1451)
at jdk.internal.reflect.GeneratedMethodAccessor701.invoke(Unknown Source)

Что я делаю не так?

Также я смогу вызвать python скрипт из этого плагина, который предоставит мне список параметров, которые я sh буду использовать?

1 Ответ

1 голос
/ 17 января 2020

env доступен в среде сборки Jenkins. Сценарий расширенного выбора groovy запускается перед сборкой, так как вы вводите параметры. Он работает в среде GroovyShell, и все, что он может сделать, - это запустить простой сценарий, чтобы отобразить выбор для параметра. Например, если вы создаете параметр множественного выбора, сценарий для создания вариантов может быть следующим:

return ["DEV environment", "TEST environment", "PROD environment"]

Таким образом, вы можете использовать env.WORKSPACE в своем сценарии Jenkinsfile или конвейере, но в параметре расширенного выбора сценарий, он не определен.

Согласно этому этому ответу, вы должны иметь возможность использовать что-то вроде

System.getEnv().get('WORKSPACE')

Но я не мог заставить это делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...