【问题标题】:Jenkins job for multiple Github repoJenkins 为多个 Github 存储库工作
【发布时间】:2020-02-26 16:58:20
【问题描述】:

我想创建一个连接/侦听多个 Github 存储库的 Jenkins 作业,并通过使用“拉取请求构建器”插件在其中一个存储库中打开拉取请求来触发该作业。

我在 Jenkins 中看到了一个选择 Github 组织类型作业的选项,但它需要在每个 repo 中都有一个 jenkinsfile,这违背了目的。

有人建议我为每个 repo 创建一个作业,然后以 repo 名称作为参数触发一个通用作业,但是如果我有 20 个存储库,我不想创建 20 个作业。

有谁知道这样做的方法吗?

【问题讨论】:

  • 这可能不是你想听到的,但 20 份工作还不错,你可以在 10 分钟内通过复制一份来完成 - 作为奖励,你有一个。每个触发作业的单独历史记录。其他选项可能是一些中间件等待 web-hook 事件并触发作业。
  • @Tupteq 感谢您的输入,我创建了一个脚本来复制工作,但对管理 20 个工作不满意(即使所有工作都使用同一个 jenkinsfile)我在看 Github-将在 pull req 上从 repo 触发作业的操作,但它仍然不是一个好的解决方案,因为您需要在每个 repo 中创建操作并对其进行管理,并且它们还不支持稳定的 IP 地址。

标签: git jenkins jenkins-pipeline jenkins-plugins


【解决方案1】:

您可以通过在 Jenkins 中创建单个流水线类型的项目并解析 GitHub webhook 的有效负载来获取您需要的参数来确定您需要在每种情况下构建 20 多个存储库中的哪一个来实现您的目标.

我使用Generic Webhook Trigger plugin 来实现类似的目标。此插件允许您解析 webhook 中包含的所有 json 字段。例如,您可以在此处找到自定义作业运行所需的 repo/branch/PR 信息,并将这些参数提供给您的结帐阶段。

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 2019-02-26
    • 2011-07-09
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 2018-02-07
    相关资源
    最近更新 更多