首页 > 解决方案 > 在开发分支中的代码提交上为所有分支触发 Jenkins 管道

问题描述

任何人都可以帮助我解决以下问题:

我的开发人员在 Bitbucket 的 Dev 分支中推送代码,但在 Jenkins 中,它触发了 Dev、Test、Stage 和 Prod 管道,尽管其他分支中没有部署任何更改,它只是重新部署了 Test、Stage 和 Prod 中的最后一次提交。但是为什么要推送到 DEV 分支的任何代码触发另一个管道。

请注意,每个 env 管道仅检查相应的 env 分支以进行部署。我也向 Bitbucket 社区提出了这个问题,但他们确认从 Bitbucket 端没有发现任何问题,并建议从 Jenkins 端检查。

在我的 Jenkins 中,每个管道都是基于“每当将更改推送到 Bitbucket 时构建”触发的

标签: jenkins-pipeline

解决方案


多分支管道应该是这里的方式。使您的文件更容易。

替代方法是在您的声明性管道中编写一个脚本块(或直接编写脚本化管道),它将评估 git.branch 环境变量并仅在分支正确时运行作业。

当您有一组固定的分支时,这将起作用并且在某种程度上可以维护。如果您让开发人员在这里和那里创建新分支,那么这将很快变得势不可挡。


推荐阅读