Jenkins Pipeline Access阶段在power shell执行中执行变量

时间:2017-09-28 08:52:20

标签: shell powershell jenkins jenkins-pipeline

我想访问我的步骤中定义的正常变量到power shell执行。 我们可以使用$ env访问环境变量但是,如何访问正常的步骤变量?

stages {
        stage ('sometask') {
                steps{
                     script {
                        def someString = 'Hi'
                        withCredentials(...) {
                        def out = powershell(returnStdout: true, script: 
                               '''
                               // Access someString 
                         ''')
                         println out
                       }
                }
         }
}

2 个答案:

答案 0 :(得分:0)

这可能不是最优雅的方式,但我已经这样做了: (我将使用相同的例子)

stages {
        stage ('sometask') {
                steps{
                     script {
                        def someString = 'Hi'
                        withCredentials(...) {
                        def out = powershell(returnStdout: true, script: 
                               '''
                        PowerShellCommands.... 
                        Write-Host ''' + someString + '''
                        someMorePowerShellCommands
                         ''')
                         println out
                       }
                }

基本上我正在做的是连接

的值
  

someString

在脚本的中间,如果您需要传递更多变量,则需要遵循相同的逻辑:

''' some script code ''' + variableName + 
''' some more script code''' + anotherVariableName + 
''' evenMoreScriptCode '''

在我的情况下,我使用配置参数而不是

  

VARIABLENAME

我正在使用

  

config.webURL

例如

希望这有帮助。

EN

答案 1 :(得分:0)

以下应该工作:)

阶段{

    stage ('sometask') {
            steps{
                 script {
                    def someString = 'Hi'
                    withCredentials(...) {
                    def out = powershell(returnStdout: true, script: 
                           """
                           // Accessing someString 
                           Write-Host $someString
                     """)
                     println out
                   }
            }
     }

}