来自版本控制(Bitbucket)的Jenkins多分支管道-我可以为特定分支指定规则吗?

来自版本控制(Bitbucket)的Jenkins多分支管道-我可以为特定分支指定规则吗?,jenkins,jenkins-pipeline,bitbucket,multibranch-pipeline,Jenkins,Jenkins Pipeline,Bitbucket,Multibranch Pipeline,我目前正在从BitBucket创建一个多分支管道,它将自动构建所有分支。这将非常有助于拉取请求,总体上可以节省大量时间。然而,这个特定的项目有点不同——它是一个web应用程序,由两个不同的Jenkins作业构建: 作业1:从版本控制(Subversion和Git)签出文件,如果成功,则触发作业2(从作业配置) 作业2:将文件从作业1传输到节点,并执行部署脚本。作业中有很多额外的配置,我不需要解释。如果此作业成功,则部署web应用程序 然而,多分支管道的工作原理是,它指向每个分支(启动作业1)的J

我目前正在从BitBucket创建一个多分支管道,它将自动构建所有分支。这将非常有助于拉取请求,总体上可以节省大量时间。然而,这个特定的项目有点不同——它是一个web应用程序,由两个不同的Jenkins作业构建:

作业1:从版本控制(Subversion和Git)签出文件,如果成功,则触发作业2(从作业配置)

作业2:将文件从作业1传输到节点,并执行部署脚本。作业中有很多额外的配置,我不需要解释。如果此作业成功,则部署web应用程序

然而,多分支管道的工作原理是,它指向每个分支(启动作业1)的Jenkins文件并构建该文件。每次都是成功的,但是它不会触发作业2。同样在BitBucket中,它显示为所有分支的成功构建,因为它只查找此特定作业


是否有一种方法可以为分支作业制定单独的规则,以便它们触发另一个作业,并且如果生成已通过或失败,BitBucket会将该作业作为引用来查找?我非常不希望将整个功能合并到一个文件中,因为这将是一个巨大的变化。谢谢。

不清楚您在第二份工作中采取了哪些行动,以了解这是所有工作的共同点,还是每个部门的做法都非常不同

首先,假设您的第二个作业对于所有分支都是公共的,您可以在每个分支中都有一个Jenkins文件,该文件在其中触发公共作业(基于位于公共位置的另一个Jenkins文件)

第二,如果每个分支的功能不同,我建议使用一个通用函数,并尝试在第一个Jenkins文件中根据每个分支的要求传递参数

这只是一个想法。如果你能再多解释一点关于第二职业的行为,我也许能提供更多的想法来帮助你