我正在使用declarative Jenkins pipelines运行我的一些构建管道,并想知道是否可以定义多个代理标签 .
我有许多构建代理连接到我的Jenkins,并希望这个特定的管道能够由具有不同标签(但不是所有代理)的各种代理构建 .
更具体地说,假设我有2个标签为'small'的代理,4个标签为'medium',6个标签为'large' . 现在我有一个资源非常低的管道,我希望它只在一个“小”或“中”大小的代理上执行,但不能在大型代理上执行,因为它可能导致更大的构建在队列中等待不必要的长时间 .
到目前为止我见过的所有例子都只使用一个标签 . 我试过这样的事情:
agent { label 'small, medium' }
但它失败了 .
我正在使用Jenkins Pipeline插件的2.5版本 .
4 回答
您可以在Jenkins安装中看到“管道语法”帮助,并查看示例步骤“节点”参考 .
你可以使用
exprA||exprB
:这个语法似乎对我有用:
如果您需要多个代理,您可以声明
agent none
然后在每个阶段声明代理 .https://jenkins.io/doc/book/pipeline/jenkinsfile/#using-multiple-agents
来自文档:
创建另一个标签调用“小型或中型”,其中包含6个所有代理 . 然后在Jenkinsfile中: