jenkins - Jenkinsfile 的字符串插值和连接
问题描述
我正在尝试根据传递给自身的参数设置一个 Jenkinsfile 来获取调用其他作业的作业。
与其有多个when
条件,我认为如果被调用的作业的名称理想情况下将一个公共前缀与传入的参数连接起来,它会更智能(并且可以管理未来的扩展),例如:
- CICD_api-网关
- CICD_前端
- CICD_customer-service
我很难将字符串插值与字符串连接混合来实现这一点:
build job: 'CICD_"${params.SERVICE_NAME}"', wait : false
在Linux中,我们可以使用eval
来实现这一点。我不确定 Jenkinsfile 语法中的等价物是什么。
完整代码如下:
pipeline {
agent any
parameters { string(name: 'SERVICE_NAME', defaultValue: '', description: 'Service being deployed.') }
stages {
stage('Build Trigger'){
steps{
echo "CICD_${params.SERVICE_NAME}"
build job: 'CICD_"${params.SERVICE_NAME}"', wait : false
}
}
}
}
解决方案
从一开始就将其更改为 Gstring,不需要单引号:
build job: "CICD_${params.SERVICE_NAME}", wait : false
推荐阅读
- java - Spring框架在Netbeans中与JDK javac 16.0.2一起使用吗?
- installation - WiX 工具集:如何根据在同一捆绑包中早期安装程序中所做的选择运行捆绑包中的安装程序?
- php - Xero 客户端错误:`POST https://api.xero.com/payroll.xro/1.0/Timesheets` 导致 `400 Bad Request` 响应:0Bad request
- typescript - 为什么当我将数字视为数组时没有 Typescript 编译错误?
- amazon-web-services - Alexa 应用程序为设备接收语音命令但未显示响应
- node.js - 未从节点打字稿请求设置 Cookie
- assembly - 如何在 RISC-V 中区分 jalr 和 beq 的机器码
- android - Android,计算用户购买应用程序的时间
- javascript - 我可以从节点中的 sqlite3 数据库中获取数组而不是 JSON 数组的结果吗?
- android - Android Maven项目资源有问题