Jenkins 如何检查节点()是否已分配

Jenkins 如何检查节点()是否已分配,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我正在为Jenkins管道作业编写一些groovy助手方法。我的一个方法应该在有或没有分配节点的情况下调用,如下所示: myMethod() // Call outside of the node (no node allocated yet) node("...") { myMethod() // Call within the node } 现在,为了实现这个方法,我必须检查我当前是否在一个节点内,如果不在,则分配一个,如下所示 def myMethod() { if (

我正在为Jenkins管道作业编写一些groovy助手方法。我的一个方法应该在有或没有分配节点的情况下调用,如下所示:

myMethod() // Call outside of the node (no node allocated yet)
node("...") {
    myMethod() // Call within the node
}
现在,为了实现这个方法,我必须检查我当前是否在一个节点内,如果不在,则分配一个,如下所示

def myMethod() {
    if ( -->isNodeAllocated()<-- ) {
        // Do the stuff
    } else {
        node() {
            // Do the same stuff
        }
    }
}
def myMethod(){

如果(-->isNodeAllocated()Jenkins在节点中设置名为NODE_NAME的环境变量。请尝试以下操作:

if (env.NODE_NAME) {
    // Do stuff 
} else {
    node ('yournode') {
        // Do stuff
    }
}

我记得在一些共享库(可能是fabric8?)。首先,您尝试在不分配节点的情况下执行,如果失败,则将步骤包装在
节点中。它是否也在使用
parallel
的多作业情况下工作?对于在
parallel
中执行的所有块,
env
变量不是某种全局变量吗?