如何在 Jenkins 上使用多分支管道重用分支之间的工作空间?
How to reuse workspaces between branches with multibranch pipeline on Jenkins?
我已经设置了多分支管道来跟踪我的存储库并自动构建和测试所有合并请求。它创造了奇迹,但是,我注意到詹金斯为每个新分支创建了一个新工作space。这是一个相当大的项目,具有繁重的构建过程和许多未跟踪的缓存文件,从一个版本到另一个版本大多保持有效 - 所以如果不是新鲜的 git 检出,它将重新使用以前的工作space,它会构建得更快(而且不会占用那么多硬盘 space)。
我如何配置它以对不同分支重复使用相同的工作space?
研究问题后,我发现这不是我可以用多分支管道做的事情,所以我转而使用常规管道项目。现在每个构建都使用一个可用的工作区,因此它们最终会重新使用以前的工作区和真正加快构建速度的相同缓存文件。
Jenkins for MultiBranch 项目默认为每个分支使用独立的工作区。
同一分支中的作业使用相同的工作区。
一个可能的解决方案是在管道内使用 ws(path)。
node("agent_name") {
ws(workspacePath) {
echo '...'
// ..
}
}
我已经设置了多分支管道来跟踪我的存储库并自动构建和测试所有合并请求。它创造了奇迹,但是,我注意到詹金斯为每个新分支创建了一个新工作space。这是一个相当大的项目,具有繁重的构建过程和许多未跟踪的缓存文件,从一个版本到另一个版本大多保持有效 - 所以如果不是新鲜的 git 检出,它将重新使用以前的工作space,它会构建得更快(而且不会占用那么多硬盘 space)。
我如何配置它以对不同分支重复使用相同的工作space?
研究问题后,我发现这不是我可以用多分支管道做的事情,所以我转而使用常规管道项目。现在每个构建都使用一个可用的工作区,因此它们最终会重新使用以前的工作区和真正加快构建速度的相同缓存文件。
Jenkins for MultiBranch 项目默认为每个分支使用独立的工作区。 同一分支中的作业使用相同的工作区。
一个可能的解决方案是在管道内使用 ws(path)。
node("agent_name") {
ws(workspacePath) {
echo '...'
// ..
}
}