让 Jenkins 在 git post commit hook 之后构建特定的分支
Make Jenkins build specific branch after git post commit hook
我正在使用我自己托管的 Atlassian 的 Stash。我有一个 git post 提交挂钩,它会触发我的 Jenkins 机器。目前这适用于拉取请求(每次拉取请求 made/updated,挂钩将调用将构建的 Jenkins)。为此,我使用了源代码管理插件,我将 pr
作为名称,将 +refs/pull/*:refs/remotes/origin/*
作为 refspec。我还选择了要构建的分支,即 develop
.
现在我希望能够在本地创建一个发布分支,例如 release/1.0
,向其添加一些更改。然后我想将它推送到我的 Stash 服务器,这将触发钩子并让 Jenkins 构建发布分支。我的问题是每次在任何分支上发生提交时,作业都是 运行。
我怎样才能让这只在我将提交推送到我的发布分支时发生?请注意,我希望将来有更多的发布分支,所以可能会有 release/1.0
、release/1.1
和 release/2.0
等等,所以我不能在 Jenkins 中硬编码任何分支名称(我想要有这个动态)。
为了仅在提交到您的发布分支时触发,只需将源代码管理插件中的 refspec 更改为 +refs/pull/*:refs/remotes/origin/release/*
。
好的,我的一个同事帮我解决了这个问题。我们通过将名称字段留空来修复它,在 refspec 中我们输入 +refs/heads/release/*:refs/remotes/origin/release/*
,作为要构建的分支我们输入 origin/release/*
.
我正在使用我自己托管的 Atlassian 的 Stash。我有一个 git post 提交挂钩,它会触发我的 Jenkins 机器。目前这适用于拉取请求(每次拉取请求 made/updated,挂钩将调用将构建的 Jenkins)。为此,我使用了源代码管理插件,我将 pr
作为名称,将 +refs/pull/*:refs/remotes/origin/*
作为 refspec。我还选择了要构建的分支,即 develop
.
现在我希望能够在本地创建一个发布分支,例如 release/1.0
,向其添加一些更改。然后我想将它推送到我的 Stash 服务器,这将触发钩子并让 Jenkins 构建发布分支。我的问题是每次在任何分支上发生提交时,作业都是 运行。
我怎样才能让这只在我将提交推送到我的发布分支时发生?请注意,我希望将来有更多的发布分支,所以可能会有 release/1.0
、release/1.1
和 release/2.0
等等,所以我不能在 Jenkins 中硬编码任何分支名称(我想要有这个动态)。
为了仅在提交到您的发布分支时触发,只需将源代码管理插件中的 refspec 更改为 +refs/pull/*:refs/remotes/origin/release/*
。
好的,我的一个同事帮我解决了这个问题。我们通过将名称字段留空来修复它,在 refspec 中我们输入 +refs/heads/release/*:refs/remotes/origin/release/*
,作为要构建的分支我们输入 origin/release/*
.