为多个回购配置一个 Jenkinsfile 的最佳方法是什么?

What is the best way to configure one Jenkinsfile for many repos?

简短说明:

我们目前想要实现的目标:

目前的解决方案:

  1. 删除所有存储库中的所有 Jenkins 文件
  2. 在 Jenkins gui 网站中重新配置 Jenkinsfile PATH 以指向我们的新文件
  3. 在每个 repo 中放置一个配置 .yaml 文件,它将包含每个 repo 的所有相关信息(如键值)
  4. 因此,当每个 repo 被触发时,我们新的 Jenkinsfile 将加载配置文件并使用参数来执行与配置文件相关的所有阶段。

我很高兴听到你们的想法/例子/片段!它将对我有很大帮助!

此致

尼泊尔

(评论名誉不足,请见谅)

嗨@n1vgabay 如果您的 SCM 使用 Bitbucket,那么您可以试试这些:

  1. 在 Jenkins 中创建组织 Folder/Bitbucket 团队项目(从 Jenkins --> 新项目--> 组织文件夹或 Bitbucket team/Project)
  2. 更新配置以过滤您的 SCM 中项目下的所有回购(或正则表达式)。这会将所有存储库创建为单独的 MB 管道,并将其下的所有分支作为单独的作业。同样使用 Bitbucket Server Integration plugin,它会自动为所有回购创建 Webhooks 以根据事件(推送、提交、打开 PR 等)相应地触发作业
  3. 使用 Remote JenkinsFile provider plugin,您可以选择将 Jenkinsfile 放在另一个 Proj/repo 的其他地方,并从此配置中调用它们。
  4. 这个 Jenkinsfile 可以包含您需要的所有步骤,并且 运行 对于所有 运行 作为单个 MB 作业的分支都是相同的。

可以从 here 获得更多详细信息。

现在,如果你想使用单独的 jenkinsfiles,那么你可能不得不想出每个 repo 都有特定的 Jenkinsfiles,这可能会使它变得复杂,并且根文件夹级别的 Jenkinsfile 将不得不调用你的 Jenkinsfile repo/branch 所有回购和分支的级别。

希望这对您有所帮助! :)