Groovy脚本中的Jenkins变量

我想将“ $ WORSKPACE”变量用于jenkins脚本调用的常规文件。但是在SO上找到的所有解决方案都失败了:

// KO : Wks = build.getEnvironment(listener).get('WORKSPACE')

// KO : Wks = "${WORKSPACE}"

/* KO :

def thr = Thread.currentThread()

def build = thr?.executable

def envVarsMap = build.parent.builds[0].properties.get("WORKSPACE")

*/

// KO : def build = this.getProperty('binding').getVariable('build')

// KO : Wks = "%WORKSPACE%"

我得到的消息:脚本不允许使用groovy.lang.GroovyObject方法setProperty java.lang.String

java.lang.Object(JenkinsHelper.name)。管理员可以决定是批准还是拒绝此签名。

我的案例:

文件JenkinsHelper.groovy:

    class JenkinsHelper {

def init(String sln) {

Wks = "%WORKSPACE%"

}

}

return new JenkinsHelper();

从詹金斯脚本调用:

def helper = load 'C:/.../test.groovy'

helper.init("Mon SLN")

谢谢 :)

回答:

这是由Jenkins进程内脚本批准引起的,以保护可能执行的恶意脚本。

如果您是管理员,请在“ >“ >“ 注册管道代码,以避免这种情况。

  1. https://jenkins.io/doc/book/pipeline/shared-libraries/#global-shared-libraries-有关编写库的详细信息。
  2. https://jenkins.io/doc/book/managing/script-approval

以上是 Groovy脚本中的Jenkins变量 的全部内容, 来源链接: utcz.com/qa/431969.html

回到顶部