一尘不染

如果标签离线,Jenkins Matrix Groovy执行策略插件将挂起

jenkins

我正在尝试使用Matrix
Groovy执行策略插件
为Jenkins实现更复杂的组合过滤器。似乎可以正常工作,但是如果设置了标签的节点处于脱机状态,则矩阵作业将挂起,并且不会将其余矩阵项放入作业队列中。

Groovy足以在插件中产生相同的效果:

combinations.each{
            result[it.cfg] = result[it.cfg] ?: []
            result[it.cfg] << it
}
return [result, true]

如果将执行策略设置为“经典”,则即使某些节点处于脱机状态,所有作业标签也会进入队列。如果有任何区别,我启用了“如有必要,执行并发构建”。

是否需要修正某些设置,或者这是插件问题?


阅读 261

收藏
2020-07-25

共1个答案

一尘不染

那是因为经典策略将所有关键作业都排在了队列中,然后将其他作业排入了队列。

此插件将按部分调度它们,如果节点处于脱机状态,则它们将等待,这是标准行为

注意:我写了矩阵执行策略插件


合并评论

您可以通过以下操作强制所有组合一次性提交:

combinations.each{
            result["a"] = result["a"] ?: []
            result["a"] << it
}
return [result, true]
2020-07-25