我有一个jenkinsfile,根据某些参数,有时需要在节点上运行,有时在docker代理上运行。我想让jenkins管道在使用docker代理声明和更常规的代理声明之间动态切换。我唯一缺少的是如何对代理声明进行参数化。我正在尝试从一个变量传递一个代理声明开始,到目前为止我已经了解了
def agentDeclaration = {
docker {
label '...'
image "..."
args "..."
}
}
...
pipeline {
agent agentDeclaration
...
}
但这失败并显示以下错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 117: Only "agent none", "agent any" or "agent {...}" are allowed. @ line 117, column 13.
agent agentDeclaration
^
WorkflowScript: 117: No agent type specified. Must be one of [any, docker, dockerfile, kubernetes, label, none] @ line 117, column 13.
agent agentDeclaration
答案 0 :(得分:0)
尝试以def agentDeclaration = “{ docker { ... } }“
之类的字符串形式传递docker agent声明,不要忘记在其中转义双引号。