Как получить обновленное значение переменной среды внутри сценария powershell в декларативном конвейере Jenkins - PullRequest
0 голосов
/ 01 апреля 2019

Я пишу декларативный конвейерный сценарий Jenkins со скриптом powershell внутри.Когда я пытаюсь получить значение переменной среды внутри powershell, я получаю ее «исходное» значение, определенное в блоке environment, а не значение, установленное на предыдущем этапе.Блок withEnv тоже не работает.Пример:

pipeline { 
    agent any 
    environment { TEST_ENV_VAR = "0" }
    stages {
        stage('stage1') { 
            failFast true
            parallel {
                stage('stage1.1') {
                    steps {
                        script {
                            TEST_ENV_VAR = "1"
                        }
                    }
                }
            }
        }
        stage('stage2') {
            failFast true
            parallel {
                stage('stage2.1') {
                    steps {
                        echo "$TEST_ENV_VAR" // prints "1"
                        withEnv(["inv_var = $TEST_ENV_VAR"]) {
                            withCredentials([usernamePassword(credentialsId: "$CredentialsID", passwordVariable: 'password', usernameVariable: 'srvUser')]) {
                                echo "$TEST_ENV_VAR" // prints "1"
                                echo "$env.inv_var" // prints "null"
                                powershell label: 'pshell', returnStatus: true, script: '''
                                    echo "$env:TEST_ENV_VAR"  # prints "0"                                  
                                    echo "$env:inv_var" # prints nothing
                                '''
                            }
                        }
                    }
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...