git - 仅在 checkin 该分支时才尝试触发该分支的构建

标签 git jenkins

我们有 10-15 个 git 分支,但我们只想在其中 2 个(“master”和“beta1”)上触发 Jenkins 作业。我正在使用 Git Plugin对于 Jenkins 并在“要构建的分支”部分指定“master”和“beta1”。我还在“ repo 的本地子目录(可选)”字段中指定 ${GIT_BRANCH}。

我想在主分支上触发 Jenkins 作业当主分支上出现 checkin 时。

我想在 beta1 分支上触发 Jenkins 作业当 beta1 分支上出现 checkin 时。

我希望这两个分支都由同一个 Jenkins 作业控制,这样两个分支之间的内部版本号将是唯一的(如果它们在 2 个不同的作业中,内部版本号可能相同)。

目前,它似乎正在 beta1 分支上触发一项工作,以便从 master 分支 checkin 。来自日志(注意:下面日志第一行中报告的更改触发来自 master 分支):

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)

最佳答案

如果你这样做:

specifying both "master" and "beta1" in the "branches to build" section

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

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

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

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

关于git - 仅在 checkin 该分支时才尝试触发该分支的构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838005/

相关文章:

jenkins - 无法在jenkins中创建 'new job',OK按钮灰显

git - Visual Studio 在连接时使用 TFS GIT 错误

带有中央存储库的 Git

xcode - 无法推送到远程 git 存储库

GitLens 无法在 Visual Studio Code 中 pull 推送

jenkins - 如何向 Jenkins 添加用户名和密码?

android - 如何在 Windows 中使用 Python-for-Android 创建一个包?

Jenkins 多分支管道 GitHub 凭证不被接受

ubuntu - 无法从浏览器ERR_CONNECTION_TIMED_OUT访问Jenkins

Azure函数应用程序创建