Задача
Как передать значение из конвейера выпуска в тестовую сборку и консольное приложение (.exe)? В этом конкретном случае мне нужно передать персональный токен доступа (PAT), который используется как тестовой сборкой, так и консольным приложением, примерно так:
string token = Environment.GetEnvironmentVariable("appSettings_personalAccessToken");
Я пытался установить переменную окружения в одной конкретной задаче, но я не могу использовать ее в других задачах.
Подробнее
Я настроил конвейер выпуска, который запускает некоторые интеграционные тесты и запускает скрипт powershell, который выполняет консольное приложение:
Как интеграционные тесты, так и консольное приложение используют токен личного доступа (PAT) для доступа к API-интерфейсу REST Azure DevOps. Я читаю это значение из переменной среды с именем appSettings_personalAccessToken
, которая должна быть установлена в конвейере выпуска.
Я пытаюсь установить PAT в первой задаче (задача Powershell - встроенный скрипт), но в других задачах она, кажется, игнорируется, что я делаю неправильно?
Я попытался установить PAT в задаче powershell следующим образом:
Write-Host ##vso[task.setvariable variable=appSettings_personalAccessToken;isSecret=false;isOutput=true;]$personalAccessToken
Или вот так:
[Environment]::SetEnvironmentVariable('appSettings_personalAccessToken', $personalAccessToken, 'User')
[Environment]::SetEnvironmentVariable('appSettings_personalAccessToken', $personalAccessToken, 'Machine')
Но значение, похоже, игнорируется в других задачах. Что мне здесь не хватает?
РЕДАКТИРОВАТЬ 1
Даже попытка установить жестко запрограммированный PAT в задаче powershell не работает:
Write-Host "##vso[task.setvariable variable=appSettings_personalAccessToken;isSecret=false;isOutput=true;]MY_TOKEN_VALUE"