如何解决jenkins声明性管道,使用特定节点的条件
我无法使用的管道(声明式):
def parentWorkspace = "${params.WS}" // comes from upsteam job
def parentNode = "${params.NODENAME}" // comes from upsteam job
pipeline {
agent none
stages {
stage("checkout source and run tests") {
steps{
script {
if(parentWorkspace != "null")
{
agent {
node{
customWorkspace "${parentWorkspace} "
label "${parentNode} "
}
}
else {
agent {
label 'linuxVM'
}
}
}
steps {
git url: gitLocation,branch: branchName,poll: false
sh "mvn test ..."
}
}
}
}
如果“ parentworkspace”变量不为null,请使用具有提供的parentworkspace路径和节点标签的自定义工作区。否则,请使用默认工作区和带有标签“ linux”的节点。有可能吗?
尝试了一些选项无法真正使其起作用。任何帮助表示赞赏。
解决方法
尝试在管道块之外定义if条件,如下所示:
def parentWorkspace = "${params.WS}"
def parentNode = "${params.NODENAME}"
script {
if(parentWorkspace != "null") {
label "${parentNode} "
}
else {
label 'linuxVM'
}
}
pipeline {
//your pipeline code
}
要分配工作区,请使用ws(“ $ {params.WS}”)
如果这不能解决问题,请回复。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。