jenkins - 在scriptText中将变量传递给JobDsl种子作业(Jenkins)?
问题描述
我正在做一个项目,我必须使用 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 文件更正确地执行此操作。
推荐阅读
- android - 在一个 react-native 项目中使用谷歌地图和 FCM
- python - 这个 ORM 查询是什么意思?
- mongodb - MongoDB & Spark:mongo-hadoop 和 mongo-spark 的区别
- android - 不同设备上的安卓多屏应用
- ios - 我们可以在 Windows 中构建 Ionic 应用程序并将其发送到 iPhone 并安装并运行吗?
- spring-boot - 带有弹簧调度程序的 Spring Boot
- c# - Aspnet 身份安全标记验证始终返回 false
- jquery - 使用 Jquery 在网页中拖放图像
- matlab - 如何在不使用 Matlab 中的嵌套循环的情况下对矩阵的所有元素应用 if 条件
- php - 如何应用热补丁来修复 symfony 项目中的错误?