Jenkins民意调查GitHub应该足够聪明,不要重建相同的版本......对吗?

时间:2014-09-04 16:06:46

标签: github jenkins

我在GitHub中配置了一个post-receive挂钩,按照here所述命中我的存储库的Jenkins notifyCommit URL。

任何分支上的任何提交都会触发该钩子,该钩子会发送轮询事件。精细。对功能分支进行更改,Jenkins将进行轮询,并注意到在作业的已配置分支(master)上构建没有新内容,对吧?

但显然,不是,因为即使Jenkins工作投票日志说:

[poll] Last Built Revision: Revision abc123 (origin/master)

推送到新分支origin/not-master,触发一个构建,其日志显示为:

Checking out Revision abc123 (origin/master)

因此,当master中没有任何变化时,它会为master启动一个新的构建。这可能是如何配置作业的存储库和分支的问题?或者这只是预定的民意调查的工作方式?

2 个答案:

答案 0 :(得分:1)

问题是构建是由分支参数化的。我错误地认为通知只会构建由master的默认参数值指定的分支,或者它将构建通知所针对的构建。

通过将作业的分支修复为master,构建触发器按预期工作。

答案 1 :(得分:0)

由于我不知道的原因,Jenkins似乎跟踪它已经看到的提交并在工作空间中的某处构建。如果您正在使用例如Workspace Cleanup plugin要在构建的开始或结束时删除作业工作区,Jenkins将失去对其构建内容的跟踪,并将启动新构建以恢复同步。

停止这样做。如果您需要清理工作区,请使用Git SCM“高级行为”下拉列表并选择“结账后清理”。这将使Jenkins运行“git clean”,如果作业使用git,这是一种快速安全的清理工作区的方法。