Передача переменной среды Jenkins в сценарий Powershell - PullRequest
0 голосов
/ 27 мая 2018

Я хотел бы использовать переменную окружения jenkins внутри скрипта Power Shell. Здесь $ {destination} имеет нулевое значение внутри скрипта PowerShell. Не могу определить, в чем заключается ошибка, которую я делаю. Пожалуйста, помогите

! / bin / groovy

трубопровод {

agent {
    label {
        label ""
        customWorkspace "C:\\Jenkins\\workspace"
    }
}
environment {       

    def destination=''
}
options {
    timestamps()
    timeout(time: 60, unit: 'MINUTES')      
    skipDefaultCheckout(true)
    disableConcurrentBuilds()
 }

stages {

    stage('TEST') 
    {     
        steps {
                script{
                    destination="\\\\SERVERNAME\\d\$"
                }
                echo "${destination}"

                powershell '''

                    $destinationPath ="${destination}"

                    write-host $destinationPath

                    write-host "test3" '''

            }  
    }
}
post {
    always {
        deleteDir()         
    }   

}

1 Ответ

0 голосов
/ 27 мая 2018

Вы можете решить эту проблему, используя один из двух методов, в зависимости от того, что вам больше подходит:

  1. Используйте "" "вместо" ", чтобы иметь возможность заменить destination егоПри использовании этого подхода вы должны избегать идентификаторов переменных Powershell, чтобы избежать нежелательных подстановок, например: \$destinationPath = "${destination}"

  2. Экспорт переменных Jenkins как переменных среды: withEnv(["DESTINATION=$destination"]) { powershell ''' $destinationPath ="$env:DESTINATION" ... ''' }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...