3

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

我已经设置了一个安静期,有时我只是启动和停止构建(这很尴尬),所以詹金斯拉动了变化,以后不会触发构建。

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

  • 手动取消未来的构建(在它被 SCM 轮询器触发之前)
  • 在不触发构建的情况下手动更新项目的 SCM 存储库?
4

3 回答 3

7

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

  1. 无需轮询 SCM 并触发基于更改的构建,您可以采用另一种方式。您可以让您的 SCM 决定提交是否应该触发作业。看看那里的例子
  2. 您可以尝试在您的作业的 Subversion 扩展属性中使用“排除的提交评论”属性,这样,您可以避免在“无用的提交”上触发构建。
于 2012-05-22T11:50:21.493 回答
2

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

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

于 2012-05-22T11:45:30.970 回答
1

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

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

于 2012-05-22T13:52:22.157 回答