如何在詹金斯管道中将groovy变量传递给powershell?

时间:2019-04-02 20:48:26

标签: jenkins groovy

我正在尝试将groovy变量传递给jenkins管道内的powershell脚本,它们都放在同一位置,但我不知道如何。我尝试了不同的方法但没有成功。

我需要此名称来获得批准PIPELINE步骤的人员的姓名,并将其传递给与SQL SERVER连接的powershell

    stage('Step1'){
      steps{ 
        script{
         def approverDEV
         approverDEV = input id: 'test', message: 'Hello', ok: 'Proceed?', parameters: [choice(choices: 'apple\npear\norange', description: 'Select a fruit for this build', name: 'FRUIT'), string(defaultValue: '', description: '', name: 'myparam')], submitter: 'user1,user2,group1', submitterParameter: 'APPROVER'

          echo "This build was approved by: ${approverDEV['APPROVER']}"
        }
      }
    }

stage('Step2'){
  steps{ 
    script{
      powershell ('''
       # Example echo "${approverDEV['APPROVER']}"
       # BUT THIS DOESN'T WORK :(
      ''')
    }
  }
}

我希望输出是存储在变量GROOVY approverDEV中的批准者的名称

1 个答案:

答案 0 :(得分:0)

Dagett是正确的,请在powershell脚本周围使用双引号,然后将对变量进行求值:

script{
  powershell ("""
   # Example echo "${approverDEV['APPROVER']}"
   # BUT THIS DOESN'T WORK :(
  """)
}

在Groovy中使用三重双引号称为“多行GString”。在GString中,将在创建实际的String之前先对变量求值。