我正在使用管道声明性语法,我需要获取从共享库中的方法返回的值
pipeline{
String label= new Define.getLabel()
agent (label ${label})
// stages, options ...
}
我正在使用管道声明性语法,我需要获取从共享库中的方法返回的值
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'
。