Jenkins Pipeline jenkinsFile应该是存储库的一部分吗?

时间:2016-11-22 08:07:10

标签: jenkins jenkins-pipeline

我们正在调查Jenkins Pipeline类型的项目,并想知道Jenkinsfile是否必须是存储库的一部分?

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

您必须克隆整个存储库以获取Jenkinsfile,这感觉很奇怪。然后Jenkinsfile本身再次克隆存储库以构建项目。

是否有关于此或最佳做法的文档?

2 个答案:

答案 0 :(得分:1)

诚然,这个问题已有一年多的历史了,但是…………

我认为您不能在多分支管道中执行此操作。脚本路径的描述为:

  

管道脚本检出中的相对位置。注意   它将始终在Groovy沙箱中运行。默认是   Jenkinsfile如果留空。 (只需使用checkout scm来检索源   从与此处配置相同的位置)

自从发布此问题以来,对jenkins进行了一些更改,因此只有在您被允许对Jenkins脚本进行更改的人的情况下,它才会克隆回购(您可以配置jenkins来确定它的方式) 。这对不允许更改jenkins文件的用户非常有用,因为他们跳过了最初的克隆和签出操作。当然,如果允许您进行更改,这并没有太大帮助。还有一个潜在的问题,就是有人可以对Jenkins脚本进行更改,但是更改后的脚本只有在合并到master分支中之后才能运行,并且如果有任何错误,那就来不及了...

答案 1 :(得分:-1)

使用Jenkinfile有两种方法:

  1. 使用groovy脚本
  2. 使用带有SCM的groovy脚本
  3. 您还可以使用Jenkins Job-builder插件自动执行作业,管道项目等。Jenkins Job Builder在这种情况下,您只需更改存储库,其余配置保持不变。

    Top 10 Best Practices for Jenkins Pipeline Plugin