Jenkins分享了groovy库git merge触发工作

时间:2017-10-18 21:13:51

标签: jenkins jenkins-plugins

我正在管道中使用共享的groovy库。我发现,当我合并到我的库时,会触发使用该库的一部分作业(但不是全部)。

我查看了共享库配置,并验证了“在工作最近更改中包含@Library更改”已选中。我已经梳理了日志,寻找线索,我发现看似随机的工作被合并触发,但我无法确定为什么这些特定的工作会被运行。

我目前的想法是/ github-webhook /只是触发了太多的工作。

我正在使用Jenkins 2.82和2.9的groovy库插件 https://wiki.jenkins.io/display/JENKINS/Pipeline+Shared+Groovy+Libraries+Plugin

更多信息: 如果我删除了共享库触发的其中一个作业,并重新创建它,那么在合并共享库时它将不再重建。在旧的config.xml上运行diff与新的一个差异并没有帮助。工作流作业@ $ id和其他插件版本发生了变化,但这似乎无关。

2 个答案:

答案 0 :(得分:0)

我有你在问题中描述的完全相同的行为。就我而言,禁用和启用所有作业可以解决此问题。在"脚本控制台":

上运行以下代码
for (item in Jenkins.instance.items) {
    item.disabled = true
    item.save()
    item.disabled = false
    item.save()
}

答案 1 :(得分:0)

共享库插件workflow-cps-global-lib在2.9版本中对此进行了修复:

  

JENKINS-41497 - 允许从更改日志中排除共享库(和   因此,通过全局配置选项从SCM轮询)   和/或@Library(值=" some-lib @ master",changelog = false)。

只需在库或管道级别配置它即可禁用此行为。