Azure DevOps: как установить значение переменной в зависимости от стадии - PullRequest
0 голосов
/ 07 мая 2020

В моем приложении Xamarin.Forms (которое поддерживает iOS, Android, UWP) у меня есть файл config. json, который определяет некоторые переменные, например

{"HideExperimentalFeature": false }

Возможно ли в конвейере AzureDevops ввести значение для переменной на основе стадии, например, QA или Production? Например, для QA может быть установлено значение false, а для Production - true. Можно ли сделать это через пользовательский интерфейс?

Ответы [ 2 ]

3 голосов
/ 07 мая 2020

Вы можете заменить токены в файлах:

  1. обменять его в своем json файле на токен ie. { "HideExperimentalFeature": #{HideExperimentalFeature}# }

  2. В конвейере выпуска вы устанавливаете следующие переменные:

    • HideExperimentalFeature: true для стадии Prod
    • HideExperimentalFeature: false для этапа QA
  3. Добавить задачу Replace Tokens в ваш конвейер:
    • Целевые файлы: путь / к / config. json
    • Отсутствующие переменные / действие: сбой
1 голос
/ 07 мая 2020

Да, вы можете использовать Replace Tokens расширение .

в файле config.json просто добавьте ключевые маркеры и сообщите расширению, какие файлы следует сканировать для замены.

{
  "ConnectionStrings": {
    "BloggingDatabase": "#{connection_string}#"
  },
  { "HideExperimentalFeature": #{HideExperimentalFeature}# }
}

connection_string будет заменено правильным значением в зависимости от стадии. Также вы можете использовать стадию Release, что означает «использовать везде». Более того, вы можете указать Release + stage_x, и тогда Release будет использоваться по умолчанию, а stage_x заменит его на своем этапе.

Считайте Missing variable behavior установленным как Fail pipeline из-за того, что Log Warn обычно не замечается в лесах бревен.

Кроме того, природа переменных Azure DevOps позволяет использовать параметр Settable as release time рядом с определением переменной. Затем вы можете передать значение

enter image description here

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