【发布时间】:2016-12-20 01:23:24
【问题描述】:
我管理一个小型构建农场,其中包括一个在 Windows Server 2008 上运行的 Jenkins 1.651.3 主服务器,以及在 Windows 7 PC 上运行的十几个从服务器(节点)。
我做了一个 Jenkins 多配置作业,每晚刷新所有 12 台从机上的构建脚本文件夹。该作业只是将文件从 SVN 存储库检出到路径 C:\Dev\Build;它不会编译文件或对文件做任何其他事情。
我选择“执行 Windows 批处理命令”作为构建步骤来运行一个简单的命令,例如"svn checkout https://mysvn/build C:\Dev\Build"。
然后我在配置矩阵的 Slaves 轴中选择了十二个从站作为“单个节点”。
slave 都配置了单个执行器,因此一次只运行一个 Jenkins 作业(这是我继承此设置时的配置方式)。
所以问题来了:如果说这个多配置项目中的“作业 A”在“节点 X”上停滞不前,因为节点 X 上的执行程序正忙于运行来自不同 Jenkins 项目的作业,看起来作业 B、C , D 等等到停顿的作业 A 可以运行,即使其他节点 Y、Z 等处于空闲状态。我可以看到节点 X 上的作业 A 和节点 Y 上的作业 B 之间有几个小时的差距 - 这对我来说没有意义,作业 A 和作业 B 之间没有依赖关系。
我是否错误地解释了这种行为?每个作业不应该独立于其“兄弟姐妹”运行吗?
有没有更好的方法让 Jenkins 在多个节点上同时运行一个简单的 svn checkout 作业,而不必等待每个作业完成后再运行下一个作业?
【问题讨论】:
-
这个问题在这里得到了相当完整的解决:stackoverflow.com/questions/17286614/…
标签: jenkins