2017-04-10 63 views
3

我有一个多分支管道作业,指向一个Bitbucket服务器存储库。如何保持多分支管道作业克隆主管上的回购

在Jenkinsfile上执行任何操作之前,它始终始终在主节点工作区中完成对存储库的完整克隆。

它为每个分支创建一个新的工作区,并带有新的资源库克隆。

这不仅会花费大量时间用于某些较大的存储库,还会占用主节点上的大量空间。

是否有可能做做任何以下的:

  1. 下载(和执行)Jenkinsfile没有克隆完整存储库
  2. 克隆库之外的另一个节点上比掌握
  3. 自动删除自动删除工作的工作区

回答

0

发现它真的很烦人。显然这个问题目前没有解决方法。要开始构建,Jenkins需要位于存储库中的Jenkinsfile,以便获取完整的回购以找到它。更多信息可以在这里找到:JENKINS-33273 Optimize Jenkinsfile loading and branch detection

主硬盘空间不足的解决方法是在作业完成后删除存储库副本。只需将此片段附加到您的Jenkinsfile即可。

node('master') { 
    stage 'Cleanup repository from master node' 

    // Due to the MultiPipeLine problem with fetching full repository on the 
    // master node we need to manually cleanup the workspace to prevent trashing 
    // HDD with copies of the git repository 
    def workspace = pwd() 
    dir("${workspace}@script") { 
     deleteDir() 
    } 
}