我正在尝试将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中的批准者的名称
答案 0 :(得分:0)
Dagett是正确的,请在powershell脚本周围使用双引号,然后将对变量进行求值:
script{
powershell ("""
# Example echo "${approverDEV['APPROVER']}"
# BUT THIS DOESN'T WORK :(
""")
}
在Groovy中使用三重双引号称为“多行GString”。在GString中,将在创建实际的String之前先对变量求值。