Jenkins管道Jenkins文件应该是存储库的一部分吗?

Jenkins管道Jenkins文件应该是存储库的一部分吗?,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我们正在研究Jenkins管道类型的项目,并想知道Jenkins文件是否必须是存储库的一部分 我们有20个java项目有一个Jenkinsfile,这是99%相同的。除了git存储库之外,Jenkinsfile中的所有内容都是相同的 您必须克隆整个存储库才能获得Jenkinsfile,这让人感到奇怪。然后,Jenkinsfile本身再次克隆存储库以构建项目 有关于此或最佳实践的文档吗?使用Jenkin文件有两种方法: 使用groovy脚本 在SCM中使用groovy脚本 您还可以使用Jenkin

我们正在研究Jenkins管道类型的项目,并想知道
Jenkins文件是否必须是存储库的一部分

我们有20个java项目有一个
Jenkinsfile
,这是99%相同的。除了git存储库之外,
Jenkinsfile
中的所有内容都是相同的

您必须克隆整个存储库才能获得
Jenkinsfile
,这让人感到奇怪。然后,
Jenkinsfile
本身再次克隆存储库以构建项目


有关于此或最佳实践的文档吗?

使用Jenkin文件有两种方法:

  • 使用groovy脚本
  • 在SCM中使用groovy脚本
  • 您还可以使用Jenkins Job builder插件来自动化作业、管道项目等。。在这种情况下,您只需更改存储库,其余配置保持不变


    无可否认,这有点像巫术,因为这个问题已经讨论了一年多了,但是

    我不认为在多分支管道中可以做到这一点。脚本路径的说明如下所示:

    管道脚本签出中的相对位置。注 它总是在Groovy沙盒中运行。默认为 如果保留为空,则返回文件。(只需使用checkout scm检索源即可 与此处配置的位置相同)


    由于发布了此问题,对jenkins进行了一些更改,因此只有当您是允许对jenkins脚本进行更改的人员时,才会克隆回购协议(您可以配置jenkins以了解其如何确定)。这对于那些不允许在跳过初始克隆和签出时更改jenkins文件的人来说是非常好的。当然,如果你被允许做出改变,这并没有多大帮助。还有一个潜在的问题是,有人可以对Jenkins脚本进行更改,但更改后的脚本在合并到主分支之前无法运行,如果出现任何错误,那就太晚了…

    1。将项目的构建脚本分为两部分。全局部分将在git之外,并在所有/多个工作/分支机构/项目之间共享,无论什么。本地部分应该留在git中。全局配置在某个点从git加载本地配置并赋予它控制权。不要使用多分支管道。曾经使用作业DSL插件+管道。两条评论都不能回答问题。是否应将其添加到存储库中?从这些评论中我都不知道。(我也是詹金斯的新手。)此外,评论“不要使用多分支管道。永远”可能是一个很好的建议,但如果你不解释原因,它就没有多大用处。我很想知道Job DSL插件的优点是什么,或者多分支插件的缺点是什么。这并不能回答标题问题。是否应将其添加到存储库中?答案应该是“是”或“否”。你说的其他一切都很好,但你可以说全部,然后仍然回答问题。(10大最佳实践链接非常有用,它回答了讨论中的一个问题,但即使这样也不能回答标题问题。)