Jenkins:更新SCM而不触发构建?

时间:2012-05-22 11:33:39

标签: build continuous-integration hudson jenkins

我们有一个SCM控制的项目,每隔几分钟轮询一次回购。总体而言,工作流程很棒但偶尔我需要将新的更改推送到服务器的存储库而不会触发Jenkins的构建(出于各种原因:长版本,小的更改,并发提交等)。

我已经建立了一个安静的时期,有时我只是开始和停止构建(这很尴尬),所以Jenkins提取更改并且不会在以后触发构建。

那么,是否有任何类型的插件允许:

  • 手动取消未来的构建(在SCM轮询器触发之前)
  • 手动更新项目的SCM回购而不触发构建?

3 个答案:

答案 0 :(得分:7)

你有很多解决方案可以做到这一点:

  1. 您可以采用另一种方式,而不是轮询SCM并触发更改构建。您可以让SCM决定提交是否应该触发作业。 Have a look there for an example
  2. 您可以尝试在作业的Subversion扩展属性中使用“Excluded Commit comments”属性,这样就可以避免在“无用提交”上触发构建。

答案 1 :(得分:2)

看一看:https://wiki.jenkins-ci.org/display/JENKINS/PollSCM+Plugin

你应该将构建触发器配置为“定期构建”(没有“池SCM”触发器),我认为可以完成这项工作

答案 2 :(得分:1)

另一个想法(不一定是更好的想法,但它可能更适合您的口味):使用Run Condition Plugin。使构建的其余部分以参数为条件(让我们将其命名为 DO_BUILD )。默认情况下,将该参数设置为 TRUE 。如果你需要提交一些东西而不触发构建集 DO_BUILD 默认为 FALSE

同一想法的变体:您在一个作业(触发器)中进行轮询,该作业在构建步骤中通过Parameterized Trigger Plugin调用您的主要作业。然后,该构建步骤可以以参数为条件。请注意,在这种情况下,您必须为两个版本使用相同的自定义工作区,或者在主作业中执行手动检出(例如,在shell构建步骤中)。