Jenkins下游任务自动触发问题:如何停止或添加参数控制?
嘿,我来帮你搞定这个Jenkins的触发问题!你现在的情况是Project A构建成功后自动跑Project B,想要关掉或者加参数控制对吧?下面分两种场景给你一步步说:
一、停止Project A对Project B的自动触发
具体操作分项目类型来:
- 自由风格项目:
- 打开Jenkins,进入Project A的配置页面(点击项目名旁的「Configure」)
- 找到「构建后操作」(Post-build Actions)区域,这里应该有个「Build other projects」的配置项
- 选中这个配置项,点击旁边的「Delete」按钮,最后保存配置就完事了
- 流水线(Pipeline)项目:
- 打开你的
Jenkinsfile,找到类似build job: 'Project B', wait: false这类触发Project B的代码行 - 直接删掉这行,或者用
//注释掉,然后提交更新Jenkinsfile即可
- 打开你的
二、为自动触发添加参数控制
如果不想完全关掉触发,而是希望能手动选择是否触发,甚至给Project B传参数,可以这么做:
自由风格项目的参数控制
- 先给Project A加构建参数:进入Project A配置,找到「General」区域,勾选「This project is parameterized」,添加一个布尔参数(比如命名为
TRIGGER_PROJECT_B,默认值可以设为true或false,看你平时的需求) - 回到「构建后操作」的「Build other projects」配置,点击「Advanced」按钮,在「Trigger when condition is met」输入框里填
${TRIGGER_PROJECT_B} - 保存配置后,下次构建Project A时,就能通过勾选这个参数来决定是否触发Project B了
流水线项目的参数控制
- 同样先在Project A的配置里添加布尔参数
TRIGGER_PROJECT_B(也可以根据需求加字符串、选择框等其他类型参数) - 修改Jenkinsfile,给触发逻辑加上条件判断:
pipeline { agent any parameters { booleanParam(name: 'TRIGGER_PROJECT_B', defaultValue: true, description: '是否在构建成功后触发Project B') } stages { // 这里是你的原有构建阶段代码... } post { success { // 只有当参数为true时才触发Project B if (params.TRIGGER_PROJECT_B) { build job: 'Project B', wait: false // 如果需要给Project B传参数,还可以扩展成这样: // build job: 'Project B', wait: false, parameters: [string(name: 'SOURCE_PROJECT', value: 'Project A')] } } } }
- 提交更新Jenkinsfile后,构建Project A时就能通过参数灵活控制触发行为了
内容的提问来源于stack exchange,提问作者newdevopsguy
相关产品推荐
相关产品推荐

