在扩展选择参数中访问环境变量

Accessing environment variables in Extended Choice Parameter

我想为将使用访问 WORKSPACE 变量的扩展选择参数编写一个 Groovy 脚本。当我尝试时:

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 脚本,它会提供我希望使用的参数列表?

env 在 Jenkins 构建环境中可用。在您输入参数时,在构建之前扩展选择 groovy 脚本 运行s。它 运行 在 GroovyShell 环境中,它所能做的只是 运行 一个简单的脚本来呈现参数的选择。例如,如果您要创建一个多 select 参数,则生成选项的脚本可以是:

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

因此您可以在 Jenkinsfile 或管道脚本中使用 env.WORKSPACE,但在扩展选择参数脚本框中,它未定义。

根据这个 this 答案,您应该可以使用

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

但我无法让它执行您想要的操作。