Jenkins在管道脚本中从上游访问参数

时间:2020-07-24 22:35:08

标签: jenkins jenkins-plugins jenkins-groovy

我有上游作业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}"
               
         }

感谢您的帮助。谢谢!

0 个答案:

没有答案