Azure Испытания трубопровода и переменные среды - PullRequest
0 голосов
/ 22 апреля 2020

Изо всех сил пытаюсь увидеть другой вопрос с ответом на это. У меня есть следующий код в модульном тесте (имена переменных изменены). Эта информация используется в моих интеграционных тестах

var configuration = new ConfigurationBuilder()
                .SetBasePath(Environment.CurrentDirectory)
                .AddEnvironmentVariables()
                .AddUserSecrets<MyTestTests>()
                .Build();

var option= new Option();

option.x1 = configuration.GetValue<string>("Option:x1");
option.x2 = configuration.GetValue<string>("Option:x2");
option.x3 = configuration.GetValue<string>("Option:x3");
option.x3= configuration.GetValue<string>("Option:x4");

return option;

Это прекрасно работает локально, когда мои модульные тесты выполняются локально. Однако, когда мои интеграционные тесты выполняются в Azure конвейере, он не собирает переменные среды.

Я создал их в формате

option__x1 , где _ - двойное подчеркивание.

Если переменные среды открыты, то это работает однако, если они установлены как секретные, это не работает.

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 23 апреля 2020

Azure Испытания модуля конвейера и переменные среды

Это поведение предназначено для защиты секретных переменных от раскрытия в задаче.

Это В документации говорится, что секретные переменные:

  • Не расшифрованы в переменные среды. Таким образом, сценарии и программы, выполняемые на этапах сборки, по умолчанию не имеют доступа.
  • Расшифровывается для доступа на этапах сборки. Таким образом, вы можете использовать их в аргументах пароля, а также явно передавать их в сценарий или
    программу с вашего шага сборки (например, как $ (пароль)).

Вот почему вы не удалось использовать секретные переменные в вашей задаче.

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

variables:
 GLOBAL_MYSECRET: $(mySecret) 
 GLOBAL_MY_MAPPED_ENV_VAR: foo 

steps:

- powershell: |

  env:
    MY_MAPPED_ENV_VAR: $(mySecret) # right way to map to an env variable

Вы можете проверить этот поток для и документ для более подробной информации.

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

...