Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 如何以声明性语法从共享库中的方法返回值?_Jenkins_Jenkins Pipeline_Jenkins Declarative Pipeline_Jenkins Shared Libraries - Fatal编程技术网

Jenkins 如何以声明性语法从共享库中的方法返回值?

Jenkins 如何以声明性语法从共享库中的方法返回值?,jenkins,jenkins-pipeline,jenkins-declarative-pipeline,jenkins-shared-libraries,Jenkins,Jenkins Pipeline,Jenkins Declarative Pipeline,Jenkins Shared Libraries,我使用的是管道声明性语法,需要从共享库中的方法返回一个值 pipeline{ String label= new Define.getLabel() agent (label ${label}) // stages, options ... } 这应该行得通。我没有使用共享库进行测试,但它的工作原理是相同的(当然,您必须使用@library('library-name')导入共享库,并且您的脚本应该存储在那里。(我的脚本在管道中)

我使用的是管道声明性语法,需要从共享库中的方法返回一个值

    pipeline{
        String label= new Define.getLabel()
        agent (label ${label})
        // stages, options ...
    }

这应该行得通。我没有使用共享库进行测试,但它的工作原理是相同的(当然,您必须使用
@library('library-name')导入共享库,并且您的脚本应该存储在那里。(我的脚本在管道中)

我的脚本非常简单。
GetLabel
将只返回
“docker”
,但您可以使用条件状态使其更加复杂

我调用该方法并将输出保存在
labelID
中。因此
labelID
包含
“docker”
。当我指定要使用的标签时,我读取
labelID
的内容

def labelID = getLabel()

pipeline {
    agent { node { label labelID } }

    stages {
        stage('Stage 1') {
            steps {
                sh 'echo "hallo"'
            }
        }
    }
}

def getLabel(){
    return 'docker'
}

此管道已在标签为“docker”的从属设备上运行。这应该可以工作。我没有使用共享库进行测试,但它的工作原理相同(当然,您必须使用
@library('library-name')导入共享库,并且您的脚本应该存储在那里。(我的脚本在管道中)

我的脚本非常简单。
GetLabel
将只返回
“docker”
,但您可以使用条件状态使其更加复杂

我调用该方法并将输出保存在
labelID
中。因此
labelID
包含
“docker”
。当我指定要使用的标签时,我读取
labelID
的内容

def labelID = getLabel()

pipeline {
    agent { node { label labelID } }

    stages {
        stage('Stage 1') {
            steps {
                sh 'echo "hallo"'
            }
        }
    }
}

def getLabel(){
    return 'docker'
}
此管道已在标签为“docker”的从属设备上运行。

这将有助于提供一个。这将有助于提供一个。