как получить переменную из powershell в декларативном конвейере jenkins? - PullRequest
0 голосов
/ 09 марта 2019
        steps {
            script{
                env.StorysTested = ''

                try{
                    powershell('''
                     //some code here
                     foreach ( $item in $Comments ) 
                     {  
                     //some code here
                     //assigning a new value to StoryTested env variable
                     $env:StorysTested = "some value"   
                     }
                     //below line works fine and displays the value
                     Write-Output "Stories tested : $env:StorysTested"
                     ''')
                     //below null value is displayed for StorysTested`` 
                     echo " From Grrovy : ${env.StorysTested}"
                    }
                    catch(err)
                    {
                     throw err
                    }
           }

Я использую декларативный конвейер Дженкинса.В приведенном выше коде я пытаюсь использовать значение $ env: StorysTested в groovy, которое было назначено в powershell.Есть ли способ сохранить значение переменной, которое было назначено в powershell, после завершения выполнения powershell.хранить его в переменной env было одним из способов, о котором я подумал, но он явно не работал.

1 Ответ

2 голосов
/ 09 марта 2019

Если вы установите переменную среды с помощью $env:StorysTested = "some value", эта переменная будет сохранена для процесса powershell и не будет постоянной или видимой вне этого процесса.

Чтобы создать более постоянные переменные среды (например, пользовательский или машинный уровень), вам нужно использовать .NET Framework и метод SetEnvironmentVariable:

[Environment]::SetEnvironmentVariable("StorysTested", "some value", "User")

или

[Environment]::SetEnvironmentVariable("StorysTested", "some value", "Machine")

Чтобы удалить из PowerShell, вы используете тот же метод .NET и присваиваете значение $null переменной следующим образом:

[Environment]::SetEnvironmentVariable("StorysTested",$null,"User")  # or "Machine" of course

Надеюсь, это поможет

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