我们正在调查Jenkins Pipeline类型的项目,并想知道Jenkinsfile
是否必须是存储库的一部分?
我们有20个具有Jenkinsfile
的java项目,其99%相同。除了git存储库之外,Jenkinsfile
中的其他所有内容都是相同的。
您必须克隆整个存储库以获取Jenkinsfile
,这感觉很奇怪。然后Jenkinsfile
本身再次克隆存储库以构建项目。
是否有关于此或最佳做法的文档?
答案 0 :(得分:1)
诚然,这个问题已有一年多的历史了,但是…………
我认为您不能在多分支管道中执行此操作。脚本路径的描述为:
管道脚本检出中的相对位置。注意 它将始终在Groovy沙箱中运行。默认是 Jenkinsfile如果留空。 (只需使用checkout scm来检索源 从与此处配置相同的位置)
自从发布此问题以来,对jenkins进行了一些更改,因此只有在您被允许对Jenkins脚本进行更改的人的情况下,它才会克隆回购(您可以配置jenkins来确定它的方式) 。这对不允许更改jenkins文件的用户非常有用,因为他们跳过了最初的克隆和签出操作。当然,如果允许您进行更改,这并没有太大帮助。还有一个潜在的问题,就是有人可以对Jenkins脚本进行更改,但是更改后的脚本只有在合并到master分支中之后才能运行,并且如果有任何错误,那就来不及了...
答案 1 :(得分:-1)
使用Jenkinfile有两种方法:
您还可以使用Jenkins Job-builder插件自动执行作业,管道项目等。Jenkins Job Builder在这种情况下,您只需更改存储库,其余配置保持不变。