Jenkins Pipeline的Jenkinsfile是否应该作为存储库的一部分?

5
我们正在研究Jenkins Pipeline 类型的项目,并想知道是否必须将 Jenkinsfile 作为代码库的一部分?我们有20个Java项目,每个项目都有一个 Jenkinsfile,这些文件99%相同。除了git代码库之外,Jenkinsfile 中的其他内容都是相同的。你需要克隆整个代码库才能获得 Jenkinsfile,这感觉很奇怪。然后 Jenkinsfile 会再次克隆代码库以构建项目。这方面有相关文档或最佳实践吗?

将项目的构建脚本分为两部分。全局部分应该在 git 之外,并在所有/许多作业/分支/项目之间共享。本地部分应保留在 git 中。全局配置在某个时候从 git 加载本地配置并控制它。 - Gena Batsyan
  1. 永远不要使用多分支流水线。请使用Job-DSL-Plugin + 流水线。
- Gena Batsyan
两个评论都没有回答这个问题。它应该被添加到代码库吗?从这两个评论中我也不知道。 (我对Jenkins也很新) - MiguelMunoz
此外,“永远不要使用多分支管道”这样的评论可能是非常好的建议,但如果您不解释原因,它就没有什么用处。我很想知道Job-DSL-Plugin的优点是什么,或者多分支的缺点是什么。 - MiguelMunoz
2个回答

1
承认这有点死灵法术,因为这个问题已经过去一年了,但是...
我认为你不能在多分支管道中做到这一点。脚本路径的描述如下:
相对于您的Pipeline脚本检出位置的位置。请注意,它将始终在Groovy沙箱内运行。如果留空,则默认为Jenkinsfile。(只需使用checkout scm从与此处配置的相同位置检索源)
自此问题发布以来,jenkins进行了一些更改,以便仅在允许更改Jenkins脚本的人克隆存储库(您可以根据需要配置jenkins)。这对于不允许更改jenkins文件的人非常有用,因为他们跳过了初始克隆和检出。当然,如果您被允许进行更改,这并没有太大帮助。而且存在一个潜在问题,即有人可以更改Jenkins脚本,但更改后的脚本直到合并到主分支后才会运行,如果有任何错误,那就太晚了...

-1

3
这不回答标题的问题。它应该被添加到资料库吗?答案只能是“是”或“否”。你所说的其他内容都很好,但即使你说了所有这些内容,也必须回答问题。(“最佳实践前十名”链接非常有用,回答了讨论中的一个问题,但即使如此,它仍然没有回答标题的问题。) - MiguelMunoz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接