Azure DevOps:根据输入 json 配置条件运行任务



我有一个Azure DevOps发布管道,它读取Powershell中的输入JSON,格式为:

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

现在,根据指定的活动,我需要在发布管道中运行相应的任务,而不是所有活动。因此,在上面,如果未指定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"
}

现在在条件表达式中使用变量activityAactivityBactivityC.

最新更新