我正在尝试使用Matrix Groovy执行策略插件为Jenkins实现更复杂的组合过滤器。似乎可以正常工作,但是如果设置了标签的节点处于脱机状态,则矩阵作业将挂起,并且不会将其余矩阵项放入作业队列中。
Groovy足以在插件中产生相同的效果:
combinations.each{ result[it.cfg] = result[it.cfg] ?: [] result[it.cfg] << it } return [result, true]
如果将执行策略设置为“经典”,则即使某些节点处于脱机状态,所有作业标签也会进入队列。如果有任何区别,我启用了“如有必要,执行并发构建”。
是否需要修正某些设置,或者这是插件问题?
那是因为经典策略将所有关键作业都排在了队列中,然后将其他作业排入了队列。
此插件将按部分调度它们,如果节点处于脱机状态,则它们将等待,这是标准行为
注意:我写了矩阵执行策略插件
合并评论
您可以通过以下操作强制所有组合一次性提交:
combinations.each{ result["a"] = result["a"] ?: [] result["a"] << it } return [result, true]