我们正在升级到Jenkins(2.60.1)的新版本,并且在以前的Jenkins版本(1.596 / 2)中运行的groovy脚本不再起作用。
这是一个Jenkins构建项目,已参数化,我们正在使用Groovy脚本为Choice Provider提供选择(Choice Provider设置为System Groovy Choice Parameter)。
我们正在尝试访问Jenkins环境变量,并这样做(这是Groovy脚本的一部分):
import hudson.slaves.EnvironmentVariablesNodeProperty import hudson.EnvVars EnvironmentVariablesNodeProperty prop = jenkins.getGlobalNodeProperties().get(EnvironmentVariablesNodeProperty.class) EnvVars env = prop.getEnvVars() def MY_VAR = env['MY_JENKINS_VAR']
但是,运行脚本时出现以下错误:
Failed to execute script groovy.lang.MissingPropertyException: No such property: jenkins for class: groovy.lang.Binding at groovy.lang.Binding.getVariable(Binding.java:63) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)
在我看来,“ jenkins”引用应该是Jenkins或Groovy提供的内置属性,但是我找不到任何有关如何通过Groovy脚本进行访问的信息。
谢谢你的帮助。
正如@Jayan在另一篇文章中指出的,解决方案是执行以下操作
import jenkins.model.* jenkins = Jenkins.instance
然后,我可以按原样完成其余脚本。