Jenkins:从另一个存储库(而不是我要构建的存储库)加载Jenkinsfile

Gie*_*ers 7 git continuous-integration multiple-repositories jenkins jenkins-pipeline

所以我在考虑这种设置,但我什至不确定是否可行。我在一个较大的组织中工作,我们希望对各种项目执行静态代码分析和单元测试。这些项目都是遵循相同模式的模块,因此,为了简单起见,我有30个项目都可以用相同的方式构建Jenkinsfile。唯一的区别Jenkinsfile是结帐阶段的存储库。

现在,我正在考虑是否有可能包含1个存储库Jenkinsfile,并让其他30个存储库使用该存储库(使用“来自SCM的管道脚本”)来获取Jenkinsfile。然后,我将在url-step的git命令中Checkout使用参数(或某些参数)设置-attribute 。

现在我的问题是:

  • 这样的设置是否可能?(具有与Jenkinsfile要构建的存储库不同的存储库)。
  • 轮询如何工作?Jenkins还是会轮询适当的存储库以查找更改(30个不同的存储库之一),还是只轮询一个包含更改的存储库Jenkinsfile(这显然不是我想要的)。

任何答案,想法或建议将不胜感激。

Rob*_*les 2

这应该通过共享库来完成。这使得一切工作变得简单,包括轮询,但集中了代码。您仍然必须能够接触每个项目以将 Jenkinsfile 放入每个存储库中,但 Jenkinsfile 可以是对共享库的最小调用。

这是一个优雅的解决方案,因为每个存储库都可以根据需要设置一些特定于项目的变量,然后进行调用。如果您有能力在每个存储库中放入 Jenkinsfile,这就是这样做的方法。