Получить набор переменных Env в Azure Powershell в конвейере Dev Ops - PullRequest
0 голосов
/ 04 августа 2020

У меня есть 2 Azure задач конвейера Dev Ops в конвейере - сначала вызывается сценарий PowerShell, который выполняет некоторые действия, а затем устанавливает переменную Env, на которую я хочу снова сослаться;

$env:MYVALUE = "ABC"

Этот powershell скрипт выполняется и работает хорошо - однако я думал, что смогу ссылаться на $ MYVALUE в конвейере после его запуска;

task: SqlAzureDacpacDeployment@1
    displayName: 'Do The thing'
    inputs:
      ...
      DatabaseName: '$(MYVALUE)' 
      ...

Можно ли получить переменную ENV из конвейера?

1 Ответ

1 голос
/ 05 августа 2020

Пример, которым вы поделились, предназначен для создания переменной процесса, поэтому она теряется, когда процесс завершается, и вы не можете получить доступ к переменной из другого процесса (экземпляр PowerShell).

Мы должны установить переменную через power script Write-Host "## vso [task.setvariable variable = {имя переменной}] {значение переменной}", тогда мы можем вызвать переменную в другой задаче.

Скелетная версия выглядит так:

pool:
  vmImage: 'ubuntu-latest'

trigger:
- none

steps:
- powershell: |   
   Write-Host ("##vso[task.setvariable variable=MYVALUE]ABC")
  displayName: 'PowerShell Script'

- powershell: |
   Write-Host "The value of MYVALUE is : $($env:MYVALUE)"
  displayName: 'PowerShell Script'

введите описание изображения здесь

...