【发布时间】:2014-01-21 20:22:18
【问题描述】:
我正在开发一组与我们的在线图片(例如 wordpress 内容)相关的构建。总体而言,这是一个庞大的工作流程,因此分为多个工作。
几个作业需要从其他作业复制大量工件;我一直在使用 Copy Artifacts 插件,但它对我的情况来说太慢了,而 rsync 会更适合。
是否可以有效地获取上游构建的源工件目录,以便我可以将其传递给 rsync 以代替使用 Copy Artifacts 插件?我想要一个简单的脚本,例如:
rsync -a --delete $UPSTREAM_ARTIFACT_DIR $WORKSPACE
【问题讨论】:
-
复制工件插件为您执行此操作存在问题。不幸的是,它自 2013 年以来一直没有进展。对我来说,这似乎是 copy-artifact-plugin 中一个很大的缺失功能。 issues.jenkins-ci.org/browse/JENKINS-20814
-
OP的问题不一定是增量副本的请求,只是因为他建议使用rsync来解决问题。结果发现 Jenkins 使用单个有限的 Java 线程实现来复制工件,并且性能极差。在我的情况下,我得到大约 1GB)工件从主机复制到代理,而我可以使用 iperf3 在操作系统级别(两侧的 debian 拉伸)确认我得到了 6-9Gbps 的吞吐量。我认为任何人都可以通过将工件 mgmt 调度到对 rsync/scp/etc 的系统调用来受益。