如何将参数传递给jenkins管道中的powershell脚本

时间:2017-10-06 20:02:19

标签: powershell jenkins jenkins-pipeline

如何将变量VAR_A传递给jenkins管道中的嵌入式PowerShell脚本?

e.g。

def VAR_A = 'test'
def mystatus = powershell(returnStatus: true, script: '''
                Write-Host "My result: '$VAR_A'" '''


withEnv(["VAR_A=test"]) {
def mystatus = powershell(returnStatus: true, script: '''
                Write-Host "My result: '$VAR_A'" '''
}

两者都得到以下输出结果 我的结果是:''

注意:我更喜欢在jenkinsfile中定义我的powershell脚本以保持简单。

1 个答案:

答案 0 :(得分:6)

试试这个:

node {
    powershell '''
        $VAR_A = 'test'
        Write-Host "My result: '$VAR_A'"
    '''
    withEnv(["VAR_A=envtest"]) {
        powershell '''
            Write-Host "My result is empty: '$VAR_A'"
            Write-Host "My env result: '$env:VAR_A'"
        '''
    }
}

输出结果为:

My result: 'test'

My result is empty: ''
My env result: 'envtest'

这是在Jenkins 2.73.1上测试的。

请注意:

  • $VAR_A = 'test'在第一个powershell '''...'''
  • 内宣布 访问环境变量需要
  • env:(请参阅Microsoft Docs中的about_Environment_Variables