Azure Devops: запустить задачу на основе входных json условий конфигурации - PullRequest
0 голосов
/ 17 июня 2020

У меня есть конвейер выпуска Azure DevOps, который считывает ввод JSON в Powershell, имеющий формат

{
  "activities": [
     "activityA",
     "activityB",
     "activityC"
  ]
}

Теперь, в зависимости от того, какое действие было указано, мне нужно запустить соответствующую задачу в конвейере выпуска, а не во всех мероприятиях. Итак, в приведенном выше примере, если activityB не указан, то задача по его установке не должна выполняться.

Я знаю, что мы можем использовать настраиваемые условные выражения для запуска задачи, но не знаю, как читать JSON массив в PowerShell и используйте его в пользовательском условном выражении.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 17 июня 2020

Вы можете прочитать JSON с помощью ConvertFrom-Json метода, затем проверить, что он содержит, и установить переменные для использования в условном выражении.

Например:

$json = '{
  "activities": [
     "activityA",
     "activityB",
     "activityC"
  ]
}' | ConvertFrom-Json

if($json.activities.Contains("activityA"))
{
    Write-Host "##vso[task.setvariable variable=activityA]true"

}
if($json.activities.Contains("activityB"))
{
    Write-Host "##vso[task.setvariable variable=activityB]true"
}
if($json.activities.Contains("activityC"))
{
    Write-Host "##vso[task.setvariable variable=activityC]true"
}

Теперь в условном выражении используйте переменные activityA activityB activityC.

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