Azure Devops:运行 基于输入 json 配置条件的任务

Azure Devops: Run a task based on input json config condition

我有一个 Azure DevOps 发布管道,它在 Powershell 中读取格式为

的输入 JSON
{
  "activities": [
     "activityA",
     "activityB",
     "activityC"
  ]
}

现在,根据指定的 activity,我需要 运行 发布管道中的相应任务,而不是所有活动。所以,在上面,如果没有指定activityB,那么安装它的任务不应该是运行。

我知道我们可以使用自定义条件表达式来 运行 任务,但不确定如何在 PowerShell 中读取 JSON 数组并在自定义条件表达式中使用它。

如有任何帮助,我们将不胜感激。

你可以用ConvertFrom-Json方法读取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.