Jenkins groovy 错误 java.lang.IllegalArgumentException:需要命名参数但得到了 [{returnStatus=true} ...]

Jenkins groovy error java.lang.IllegalArgumentException: Expected named arguments but got [{returnStatus=true} ...]

我正在尝试 运行 Jenkins DSL 管道中的代码,但出现错误,可能是什么问题

Closure test = { dockerImageName ->
    sh('''cd ''' + dir + ''' \
        && if make image ''' + dockerImageName + ''' 2>&1 | grep -m 1 "No rule to make target"; then exit 1; fi''',
        returnStatus: true
    )
}

错误

java.lang.IllegalArgumentException: Expected named arguments but got [{returnStatus=true}, cd dir && if make image docker-xxx.com/dir 2>&1 | grep -m 1 "No rule to make target"; then exit 1; fi]

您没有为第一个参数指定参数名称,请尝试以下操作:

Closure test = { dockerImageName ->
    sh(script: '''cd ''' + dir + ''' \
        && if make image ''' + dockerImageName + ''' 2>&1 | grep -m 1 "No rule to make target"; then exit 1; fi''',
        returnStatus: true
    )
}