在 Yaml 管道中为复制任务添加 If 条件

时间:2021-03-17 14:04:54

标签: azure-devops yaml

在 Azure Devops 管道中,我有一个像下面这样的复制任务,它在为 3 个不同的代理(MAC、LINUX 和 WINDOWS)运行时将文件复制到 3 个不同的文件夹中。我希望以下 Copy 任务仅针对 windows 运行。我不想要 MAC 和 Linux 文件夹中的以下文件,我该怎么做。

- task: CopyFiles@2
          displayName: 'Copy ONNX to bin folder'
          inputs:
            SourceFolder: '$(Build.SourcesDirectory)/packages/ONNXRuntime/runtimes/win-x64/native'
            Contents: onnxruntime.dll
            TargetFolder: '$(Build.SourcesDirectory)/ProjectName_x64-$(osSuffix)/bin'
            flattenFolders: true    

    

1 个答案:

答案 0 :(得分:2)

您可以使用 condition 参数在运行时驱动任务:

- task: CopyFiles@2
    displayName: 'Copy ONNX to bin folder'
    condition: $[eq(variables['osSuffix'], 'WINDOWS')]
    inputs:
      SourceFolder: '$(Build.SourcesDirectory)/packages/ONNXRuntime/runtimes/win-x64/native'
      Contents: onnxruntime.dll
      TargetFolder: '$(Build.SourcesDirectory)/ProjectName_x64-$(osSuffix)/bin'
      flattenFolders: true