【问题标题】:Azure Devops: Run a task based on input json config conditionAzure Devops:根据输入的 json 配置条件运行任务
【发布时间】:2020-10-07 01:11:11
【问题描述】:

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

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

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: powershell azure-devops azure-pipelines azure-pipelines-release-pipeline


    【解决方案1】:

    您可以使用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

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 2020-10-08
      • 2020-03-02
      • 2020-02-12
      • 2020-10-07
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多