我管理一个小型构建服务器场,包括在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”。
然后,我在配置矩阵的从属轴中选择了12个从站作为“单个节点”。
从属服务器都配置了单个执行程序,因此一次只运行一个Jenkins作业(这是我继承此设置时的配置方式)。
所以这就是问题所在:如果说这个多配置项目中的“Job A”停在“Node X”上,因为Node X上的执行程序忙于从另一个Jenkins项目运行一个作业,那么看起来是作业B,C等待,直到停止的作业A可以运行,即使其他节点Y,Z等处于空闲状态。我可以看到节点X上的作业A和节点Y上的作业B之间有几个小时的间隙 - 这对我来说没有意义,作业A和作业B之间没有依赖关系。
我是否错误地解释了这种行为?每个工作不应该独立于“兄弟姐妹”吗?
有没有更好的方法让Jenkins同时在多个节点上运行一个简单的svn checkout作业,而不必等待每个作业在下一个作业运行之前完成?
答案 0 :(得分:0)
除非复选框"按顺序运行每个配置"检查,我认为矩阵项目确实并行运行轴。
但是,如果矩阵项目没有给你你想要的东西,还有其他插件可以并行运行作业。
例如,Join Plugin和Build Flow可以并行开展大量工作。