我有一个Multibranch Pipeline作业,指向Bitbucket Server存储库。
在Jenkinsfile上执行任何操作之前,它总是在主节点工作区中完全克隆存储库。
它为每个分支创建一个新的工作区,其中包含一个新的存储库克隆。
这不仅可以为一些较大的存储库花费大量时间,而且还占用主节点上的大量空间。
是否可以执行以下任何操作:
答案 0 :(得分:0)
发现它真的很烦人。显然,目前没有解决此问题的方法。要开始构建,Jenkins需要Jenkinsfile
位于存储库中,以便获取完整的repo来查找它。可以在此处找到更多信息: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()
}
}