jenkins - 如何触发另一个需要 $BRANCH 变量的 Jenkins 管道?
问题描述
我有 3 条管道。说:
build-and-release
build
release
build
我正在重构我的管道,以便我可以release
从build-and-release
. 这些方面的东西:
// build-and-release JenkinsFile
node('master') {
build job: "build", propagate: true, wait: true
build job: "release", propagate: true, wait: true
}
// build JenkinsFile
node('master') {
stage('Build') {
// do stuff
}
}
// release JenkinsFile
node('master') {
stage('Release') {
// do other stuff
}
}
这似乎按原样工作,但build
和release
管道始终假定分支是 MASTER。当我运行这项build-and-release
工作时,我会选择我想要构建的分支。
如何让其他工作使用我选择的相同 $BRANCH build-and-release
?
解决方案
您可以将作业配置为参数build
化release
作业,然后您可以将分支名称作为参数发送,如下所示:-
// build-and-release JenkinsFile
node('master') {
build job: 'build', parameters: [string(name: 'Branch', value: "${env.BRANCH_NAME}")], propagate: true, wait: true
build job: 'release', parameters: [string(name: 'Branch', value: "${env.BRANCH_NAME}")], propagate: true, wait: true
}
然后您可以在构建和发布的 Jenkinsfile 中使用Branch变量。
注意:-您可以在上面的示例中配置任何其他参数类型字符串参数已配置,更多信息请参考链接
推荐阅读
- javascript - 以编程方式从 D3 嵌套 JSON 对象创建 HTML 表
- swift - 当 nil 应该返回特定的默认值时,在函数参数中使用可选项的最简洁方法是什么?
- c++ - C ++中的十六进制与十进制
- ckeditor - 添加自定义标题以上传图像
- php - Yii2 在所有 js 文件末尾注册 Asset Files (js)
- python - 配置 pip 命令行参数
- android - 未显示 Android 免安装应用权限请求对话框
- tensorflow - Tensorflows tf.layers.dense 是否会使输入尺寸变平?
- apache - 如何使用 Apache 拒绝所有文件?
- android - 在 RelativeLayout 中并排放置两个视图的格式问题