为多个 Git (GitHub) 存储库重复使用一个 Jenkins 作业

Reuse one Jenkins jobs for multiple Git (GitHub) repositories

我有一个非常简单的 Jenkins 构建,多个存储库都需要它。所有这些存储库都有相同的组织,相同的分支等。除了存储库名称之外没有区别。

每个单独的存储库应该能够触发仅针对该特定存储库的构建。我想像将 parameterized build 与 WebHook URL 组合起来可能包含存储库名称的查询参数。

对此有什么想法或建议吗?

我在某个地方读到过一个组织,他们将大多数标准管道放入综合共享库中。 This article 是一本很好的读物。

我自己的公司使用 "Seedjobs" 创建多个管道,只有一个作业。阅读 this article 以了解有关该想法的概述。

我们通过创建 Jenkins 构建模板并根据此模板为每个 url 配置每个作业来实现它

我们可以为一个作业配置参数,但没有采用这种方法,因为这并不容易知道哪个 git repo 失败了,因为我们需要检查每个的参数建造

可以使用以下插件创建模板https://wiki.jenkins.io/display/JENKINS/Template+Project+Plugin

在做了更多研究之后,我想我会尝试 "GitHub Organization" 工作类型。它会扫描给定 GitHub 组织或所有者的所有存储库,并自动管理相应的作业。

我知道这个问题已经得到解答,但还有另一种从多个 GitHub URL 触发单个作业的简单方法。

您可以使用 Generic Webhook Trigger Plugin 从不同的 GitHub 存储库构建相同的作业。您需要为作业分配唯一令牌并将多个 GitHub 存储库的 Webhook 配置为:

JENKINS_URL/generic-webhook-trigger/invoke?token=TOKEN_NAME