我有上游作业A,将“工作区”参数传递给上游作业A。因此,如果作业A触发了作业B,则它应使用作业A指定的工作区。 作业B还需要独立运行,在这种情况下,它应该使用自己的工作区。
在作业B中,我指定了字符串参数名称UPWORKSPACE和默认值“ unspecified”,用于读取上游作业工作区参数。
职位A:
agent {
stages {
agent
{ label 'test' }
stages
{
stage ('Invoke_pipelineA') {
steps {
build job: '/Job B', parameters: [
string(name: 'UPWorkspace', value: "${env.WORKSPACE}") ], wait: true
}
}
工作B: 该项目已参数化: 字串参数 名称:UPWorkspace 默认值:未指定。
pipeline {
agent none
stages {
stage("checkout ") {
agent {
node{
label "test"
customWorkspace "${UPWorkspace}"
}
}
steps {
echo "WORKSPACE: ${paramWorkspace}"
}
}
}
当作业A触发作业B时,它可以正常工作,我可以使用自定义工作区路径,但是如果作业独立运行,我会告诉作业B使用普通工作区?
理想的解决方案是,如果我能够指定默认值:env.WORKSPACE,在作业B中,它是完美的,但似乎不起作用。
类似这样的事情可能会有所帮助,但我无法使其在管道中正常工作。
if (params.UPWORKSPACE != "notspecified") //use custom workspace when
default is not "notspecified"
{ customWorkspace "${UPWORKSPACE}"
}
感谢您的帮助。谢谢!