将变量传递给 scriptText 中的 JobDsl 种子作业(Jenkins)?
Pass variable to JobDsl seed job (Jenkins) in scriptText?
我正在做一个项目,我必须使用 JCasC(配置为代码插件)配置 jenkins。
我必须创建一个作业,但我无法在脚本中传递变量。
我的代码:
freeStyleJob("SEED") {
parameters {
stringParam("MY_PARAMETER", "defaultValue", "A parameter")
}
steps {
jobDsl {
scriptText('''
job("seedJOB") {
displayName('${MY_PARAMETER}') // don't work
description("${MY_PARAMETER}") // don't work
//description("$MY_PARAMETER") // don't work
//description('$MY_PARAMETER') // don't work
// i tried to use triple full quotes instead of triple single quote but it's not working...
... here the job...
'''.stripIndent())
}
}
编辑:最佳解决方案:
我正在用“””引号编写 groovy 代码,所以如果我想计算变量:我不必输入 ${} 只需写下您的变量名称:
有了解决办法:
freeStyleJob("SEED") {
parameters {
stringParam("MY_PARAMETER", "defaultValue", "A parameter")
}
steps {
jobDsl {
scriptText('''
job("seedJOB") {
displayName('MY_PARAMETER) // solution
... here the job...
'''.stripIndent())
}
}
简单!
可以将它写入文件吗?你会在你的步骤中得到类似的东西:
steps {
shell('echo $DISPLAY_NAME > display_name.txt')
jobDsl {
scriptText('''
job("seedjob") {
String jobname = readFileFromWorkspace('display_name.txt').trim()
displayName(jobname)
}
'''.stripIndent())
}
}
您也可以使用 .properties 文件来更恰当地完成它。
我正在做一个项目,我必须使用 JCasC(配置为代码插件)配置 jenkins。 我必须创建一个作业,但我无法在脚本中传递变量。
我的代码:
freeStyleJob("SEED") {
parameters {
stringParam("MY_PARAMETER", "defaultValue", "A parameter")
}
steps {
jobDsl {
scriptText('''
job("seedJOB") {
displayName('${MY_PARAMETER}') // don't work
description("${MY_PARAMETER}") // don't work
//description("$MY_PARAMETER") // don't work
//description('$MY_PARAMETER') // don't work
// i tried to use triple full quotes instead of triple single quote but it's not working...
... here the job...
'''.stripIndent())
}
}
编辑:最佳解决方案:
我正在用“””引号编写 groovy 代码,所以如果我想计算变量:我不必输入 ${} 只需写下您的变量名称: 有了解决办法:
freeStyleJob("SEED") {
parameters {
stringParam("MY_PARAMETER", "defaultValue", "A parameter")
}
steps {
jobDsl {
scriptText('''
job("seedJOB") {
displayName('MY_PARAMETER) // solution
... here the job...
'''.stripIndent())
}
}
简单!
可以将它写入文件吗?你会在你的步骤中得到类似的东西:
steps {
shell('echo $DISPLAY_NAME > display_name.txt')
jobDsl {
scriptText('''
job("seedjob") {
String jobname = readFileFromWorkspace('display_name.txt').trim()
displayName(jobname)
}
'''.stripIndent())
}
}
您也可以使用 .properties 文件来更恰当地完成它。