如何在 Jenkins 管道作业中跨多个节点共享源代码?

How can I share source code across many nodes in a Jenkins pipeline job?

我有一个构建当前正在使用旧的构建流程插件,我正在尝试将其转换为管道。

此构建可以大规模并行化(许多工作单元可以 运行 在许多不同的节点上)但我们只想在开始时提取源代码 一次 ,最好使用来自 SCM 选项的 管道脚本。我不知道如何与管道脚本将使用的所有 "downstream" 节点共享源代码提取(显然在主节点上)。

对于构建流程,我们将其提取到共享文件系统上的一个众所周知的位置,并且该流程调用的所有下游作业都已传递(或可以派生)该位置。这总是让人觉得恶心,我希望管道能解决这个问题,但我找不到任何迹象表明它已经解决了。 我错过了什么?

我相信官方的建议是打包源代码,然后使用 "stash" 和 "unstash" 使它们可用于管道脚本的更深层步骤。

https://www.cloudbees.com/blog/parallelism-and-distributed-builds-jenkins

请记住,这对行尾没有任何帮助。如果您的构建跨越 OSs 且行尾不同,您要么需要制作 OS 特定的存储,要么只在每个下游步骤中签出安全标签。

经过进一步研究,External Workspace Manager Plugin 似乎符合我的要求。