Как настроить сборку DevOps для проекта creat-реагировать на приложение с различными переменными среды в зависимости от встроенной ветви? - PullRequest
0 голосов
/ 14 января 2019

У нас есть проект create-реагировать-приложение, которое получает некоторые параметры сборки из среды (например, config Auth0), что означает, что эти переменные среды влияют на сборку реакции.

Мы работаем над конвейером сборки DevOps Azure для этого проекта, и хотя определить переменные на странице переменных конвейера довольно просто, не очевидно, как их устанавливать по-разному в зависимости от того, какая ветвь создается.

Например, мы хотели бы, чтобы ветвь dev строила с использованием или разработчиком в Auth0, тогда как ветки release и master должны строить с использованием или производственного арендатора в Auth0 (та же самая переменная, два разных значения).

Есть ли документированный / поддерживаемый подход к этому? Или какая-то "лучшая практика"?

Я читал, что вы можете изменять переменные из сценариев PowerShell, например, как в этом посте . Это лучший способ сделать это? Как скрипт может проверить, какая ветвь строится, чтобы выбрать правильный набор значений?

Я также обнаружил, что DevOps имеет концепцию групп переменных. Я еще не читал об этом, но будет ли хорошим подходом определить переменную группу для каждой ветви (или шаблон ветви) и выбрать сценарий, какую группу применять? Как?

1 Ответ

0 голосов
/ 15 января 2019

Как настроить сборку DevOps для проекта creat-реагировать на приложение с различными переменными среды в зависимости от встроенной ветви?

В настоящий момент я боюсь использовать задачу сценария Power-Shell в своем определении сборки, чтобы получить имя ветви источника и затем установить переменные среды на основе имени ветви, - это хороший выбор. Потому что вложенные переменные еще не поддерживаются в конвейерах сборки.

Сценарий PowerShell, например:

$branch = $Env:Build_SourceBranchName
Write-Host "Current branch is $branch"
if ($branch -eq "Dev")
{
  Write-Host ("##vso[task.setvariable variable=testvar]testvalue")
}
else (($branch -eq "master") -or (($branch -eq "release")))
{
  Write-Host ("##vso[task.setvariable variable=testvar2]testvalue2")
}

Проверьте Logging Command во время сборки для получения более подробной информации.

Кроме того, для групп переменных мы могли бы использовать VSTS Variable Groups для среды для определения release , но это не работает для определения build . Проверьте эту тему для некоторых деталей.

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

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