我无法使用的管道(声明式):
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”的节点。有可能吗?
尝试了一些选项无法真正使其起作用。任何帮助表示赞赏。
答案 0 :(得分:0)
尝试在管道块之外定义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}”)
如果这不能解决问题,请回复。