【问题标题】:Accessing environment variables in Extended Choice Parameter在扩展选择参数中访问环境变量
【发布时间】:2020-01-17 14:51:31
【问题描述】:

我想为扩展选择参数编写一个 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 脚本,它会提供我希望使用的参数列表吗?

【问题讨论】:

标签: jenkins groovy extended-choice-parameter


【解决方案1】:

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

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

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

根据这个this 的回答,你应该可以使用类似的东西

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

但我无法让它做你想做的事。

【讨论】:

  • 我需要从 Web 服务获取 Jenkins 构建的参数。有没有办法做到这一点(不同的插件,或其他)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多