在scriptText中将变量传递给JobDsl种子作业(Jenkins)?

在scriptText中将变量传递给JobDsl种子作业(Jenkins)?,jenkins,jenkins-job-dsl,jcasc,Jenkins,Jenkins Job Dsl,Jcasc,我正在做一个项目,我必须使用JCasC(配置为代码插件)配置jenkins。 我必须创建作业,但无法在脚本中传递变量 我的代码: freeStyleJob(“种子”){ 参数{ stringParam(“MY_参数”、“defaultValue”、“A参数”) } 台阶{ jobDsl{ 脚本文本(“”) 工作(“种子工作”){ displayName('${MY_PARAMETER}')//不工作 description(“${MY_PARAMETER}”)//不工作 //descriptio

我正在做一个项目,我必须使用JCasC(配置为代码插件)配置jenkins。 我必须创建作业,但无法在脚本中传递变量

我的代码:

freeStyleJob(“种子”){
参数{
stringParam(“MY_参数”、“defaultValue”、“A参数”)
}
台阶{
jobDsl{
脚本文本(“”)
工作(“种子工作”){
displayName('${MY_PARAMETER}')//不工作
description(“${MY_PARAMETER}”)//不工作
//description($MY_参数)//不工作
//description(“$MY_参数”)//不工作
//我尝试使用三重全引号而不是三重单引号,但它不起作用。。。
……这是工作。。。
''.stripIndent())
}
}
编辑:此处为最佳解决方案:

我正在用“%”引号编写groovy代码,所以如果我想计算变量:我不必把${}放进去,只需写下您的变量名: 对于解决方案:

freeStyleJob(“种子”){
参数{
stringParam(“MY_参数”、“defaultValue”、“A参数”)
}
台阶{
jobDsl{
脚本文本(“”)
工作(“种子工作”){
displayName('MY_参数)//解决方案
……这是工作。。。
''.stripIndent())
}
}

简单!

您可以将其写入文件吗?在您的步骤中,您会得到类似的结果:

steps {
  shell('echo $DISPLAY_NAME > display_name.txt')
  jobDsl {
    scriptText('''
      job("seedjob") {
        String jobname = readFileFromWorkspace('display_name.txt').trim()
        displayName(jobname)
      }
    '''.stripIndent())
  }
}
您还可以使用.properties文件来更正确地执行此操作