У меня возникают проблемы, когда я пытаюсь отправить переменную среды между задачами с использованием хостов Powershell и Ubuntu в Azure конвейерах сборки DevOps.
Чтобы протестировать и показать эту проблему, я создал конвейер с следующее:
-Созданы две задачи, первая записывает переменную среды:
$EnvVariable= "Value"
Write-Host "##vso[task.setvariable variable=EnvVariable;]$EnvVariable"
Write-Output "##vso[task.setvariable variable=EnvVariable;]$EnvVariable"
-Вторая задача выводит это значение на вывод:
Write-Host "env:EnvVariable : $($env:EnvVariable)"
Write-Host "ENV:EnvVariable : $($ENV:EnvVariable)"
Write-Output "env:EnvVariable : $($env:EnvVariable)"
Write-Output "ENV:EnvVariable : $($ENV:EnvVariable)"
- Выходные данные этого конвейера выглядят хорошо на Windows хостах, например, при использовании хоста «vs2017-win2016» я получаю следующий результат:
env:EnvVariable : Value
ENV:EnvVariable : Value
env:EnvVariable : Value
ENV:EnvVariable : Value
-Но когда я выполняю этот же конвейер на хостах ubuntu я не получаю ожидаемого результата, здесь у вас есть результат второй задачи, выполненной на хосте сборки «ubuntu-18.04»:
env:EnvVariable :
ENV:EnvVariable :
env:EnvVariable :
ENV:EnvVariable :
Как видите, нет значений из переменной среды используя те же задачи, но на хостах ubuntu.
Просто чтобы перепроверить, я использовал Write-Output и Write-Host, чтобы проверить, не вызвана ли проблема требованием использования одного из d использовал env: и ENV: просто чтобы проверить, является ли имя переменной с учетом регистра.
Большое спасибо за ваше время.