仅在签入该分支时尝试触发分支的构建

And*_*roy 7 git jenkins

我们有10-15个git分支,但我们只想在其中的2个("master"和"beta1")上触发Jenkins作业.我正在使用Jenkins 的Git插件,并在"分支构建"部分中指定"master"和"beta1".我还在"repo(可选)的Local子目录"字段中指定$ {GIT_BRANCH}.

我想触发詹金斯工作在主分支只有当一个签出现在主分支.

我想触发詹金斯工作在β1的分支只有当一个签出现在β1的分支.

我希望这两个分支都由相同的Jenkins作业控制,以便构建号在两个分支之间是唯一的(如果它们在两个不同的作业中,则构建号可以是相同的).

目前,它似乎正在触发从主分支机构签入的beta1分支机构的工作.从日志中(注意:下面日志中第一行中报告的更改来自主分支):

Started by remote host (IP) with note: Triggered by push of revision e4391d0049ff: "blah" to (URL) by (USER)
Building in workspace /var/lib/jenkins/jobs/Orca/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Orca/workspace - hudson.remoting.LocalChannel@3ae1a582
Using strategy: Default
Last Built Revision: Revision 7e2aae6c752a16516d9f6ac48944492a4e3596d4 (origin/master)
Wiping out workspace first.
Cloning the remote Git repository
Cloning repository (SSH)
git --version
git version 1.7.4.1
Fetching upstream changes from origin
Cleaning workspace
Resetting working tree
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/beta1
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/(BLAH)
Seen branch in repository origin/master
Seen branch in repository origin/(BLAH)
Seen 22 remote branches
Multiple candidate revisions
Scheduling another build to catch up with Orca
Commencing build of Revision eaad42c836a87672c546d61f310cc31bf03ecb97 (origin/beta1)
Checking out Revision eaad42c836a87672c546d61f310cc31bf03ecb97 (origin/beta1)
Run Code Online (Sandbox Code Playgroud)

小智 3

如果您正在这样做:

在“要构建的分支”部分中指定“master”和“beta1”

并且您根据轮询 Git 触发构建,然后 Jenkins 在发现这些分支中的任何一个发生更改时将触发该作业。这是预期的功能,据我所知,您正在寻找的配置不受支持。

我可以建议两种可能的解决方案:

  1. 使用两个独立的 Jenkins 作业。这就是我们的做法,如果我们需要保持内部版本号离散,那么我们只需将内部版本号分开一个大数字即可。例如,您可以将其中一项作业的下一个内部版本号设置为 300,000。

  2. 创建两个作业,一个跟踪每个分支,但实际上不构建任何东西。使用参数化触发器插件通过 Git 分支参数触发相同的下游作业。