当前位置: 首页 > 知识库问答 >
问题:

Jenkins共享groovy库git合并触发作业

鄢禄
2023-03-14

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

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

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

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

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

共有2个答案

梁丘烨
2023-03-14

共享库插件workflow-cps-global-lib在2.9版中对此有一个修复:

JENKINS-41497-允许通过全局配置选项和/或@Library(value=“some”)将共享库从变更日志中排除(因此也可以从SCM轮询中排除)-lib@master,changelog=false)。

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

太叔鹏云
2023-03-14

我的行为和你在问题中描述的一模一样。在我的例子中,禁用和启用所有作业解决了这个问题。在“脚本控制台”上运行以下代码

for (item in Jenkins.instance.items) {
    item.disabled = true
    item.save()
    item.disabled = false
    item.save()
}
 类似资料:
  • 可以合并多个共享Jenkins库吗? 例如,我有一个公共共享库:我的共享库(带有maven项目的git存储库)定义在包含一些作业的jenkins文件夹上。在该文件夹中运行的每个作业都可以使用Jenkins文件中的共享库,包括: 现在,我想创建另一个共享库:包含一些专门管道的my-专门化共享库(在另一个git存储库中,也作为maven项目)。我的专用共享库中的管道(groovy类、脚本等)应该能够使

  • 问题内容: 说我有a.so和b.so。我是否可以将c.so生成为具有a和b导出的所有功能的单个共享库,当然可以解决所有内部依赖关系(即a.so调用的b.so的所有功能,反之亦然)? 我试过了 但这不起作用。 如果我在aa和ba中归档ao和bo(也不应修改ao和bo),也是如此 谢谢 问题答案: 除了AIX之外,在所有UNIXen上实际上都不可能将多个共享库合并为一个:链接器将.so视为“最终”产品

  • 我有一个Jenkins文件,我正在尝试从共享库实例化groovy类。我得到“无法解决类测试” 我有一个src/com/org/foo。共享库中的groovy文件: 我正试图在我的Jenkins文件中实例化它 如果我将文件作为一个类引用(我没有对其构造函数的访问权限),那么它就会起作用。即: 这很好,让我使用foo函数。但是,我失去了赋予类常量并用参数构造它的能力。 知道如何定义和使用共享库中的类吗

  • 你好,詹金斯的朋友们, 我创建了一个JenkinsFreestyle项目,其中包含“执行Groovy脚本”步骤。从脚本中,我想在同一个Jenkins服务器上触发另一个参数化作业。 有人知道我该怎么做吗?

  • 问题内容: 詹金斯版 2.89.4workflow -cps ver 2.42 当我尝试运行加载库的管道时,出现以下异常: 引用链接的Groovy类: 您可以像这样在管道或库中重现异常: 问题答案: 这是一个已知的詹金斯问题:JENKINS-45901 自2017年8月以来已开放。看起来很快不会修复: 不知道是否有详尽的文档记录了Groovy语言支持(或缺乏它),但是无论如何我都不会期望这个问题或

  • 詹金斯·弗。2.89.4 workflow-cps ver 2.42 当我尝试运行一个加载库的管道时,我得到以下异常: 链接所引用的Groovy类: 您可以在管道或库中复制异常,如下所示: