Jenkins 可以加载共享库而不在每次执行时重新克隆它们吗?

sor*_*rin 5 groovy jenkins jenkins-pipeline

在我发现 Jenkins 会为每个构建克隆共享库存储库之后,我发现 Jenkins 共享(Groovy)库的名称有点混乱和讽刺,是的,为每次执行克隆相同的代码。

这违背了共享库的概念:因为这些是由多个使用者加载的代码片段。想象一下,如果操作系统会在您尝试加载任何加载的库时制作它的副本......(是的,每天数千)

有没有办法避免这种严重的资源过载?

参考:

fis*_*x01 3

我认为目前没有办法避免这种情况,但我同意这将是一个巨大的好处。

Jenkins 应该缓存共享库并且只拉取Jenkinsfile.

除了节省不断的克隆开销之外,本地缓存共享库的另一个巨大好处是独立于存储库。Jenkins 应该能够使用它缓存的最后一个共享库版本 - 即使存储库已关闭。目前,如果您的管道不仅可以构建,还可以部署,那么您的部署过程取决于共享库存储库的可用性 - 但理想情况下,即使 git 存储库关闭,也可以部署已经构建的包。