根据Azure Devops上的参数运行任务

时间:2019-11-01 18:24:39

标签: azure-devops

我有一个可供许多管道使用的作业模板,但是我只想在将参数作为值时才运行特定任务。我该怎么办。

为简单起见,请参见下面的模板示例部分,仅在sourcefolder和targetfolder不为空时才运行复制文件任务。

任何建议如何写这种条件?

parameters:
  sourceFolder: ''         
  targetFolder: ''

jobs:
 - job: 'AAA Job'


 steps: 
    # ONLY RUN BELOW TASK IF SOURCEFOLDER AND TARGETFOLDER ARE NOT EMPTY
  - task: CopyFiles@2
    displayName: 'Copy file'
    inputs:
      SourceFolder: ${{ parameters.sourceFolder}
      TargetFolder: ${{ parameters.targetFolder}}
      OverWrite: true

更新(下面给出错误“意外值”)

- task: CopyFiles@2
  condition: ${{ if and(ne(parameters.SourceFolder,''), ne(parameters.TargetFolder,''))}}
  displayName: 'Copy Google Services Json from ${{ parameters.SourceFolder }} to  ${{ parameters.TargetFolder }}'
  inputs:
    SourceFolder: ${{ parameters.SourceFolder }}
    TargetFolder: ${{ parameters.TargetFolder }}
    OverWrite: true

1 个答案:

答案 0 :(得分:1)

您可以将以下脚本添加到模板yaml文件中。

- ${{ if and(ne(parameters.sourceFolder,''), ne(parameters.targetFolder,''))}}:

所以管道应该这样:

parameters:
  sourceFolder: ''         
  targetFolder: ''

jobs:
- job: 'AAA Job'

  steps: 
  - ${{ if and(ne(parameters.sourceFolder,''), ne(parameters.targetFolder,''))}}:
    - task: CopyFiles@2
      displayName: 'Copy file'
      inputs:
        SourceFolder: ${{ parameters.sourceFolder}
        TargetFolder: ${{ parameters.targetFolder}}
        OverWrite: true

您可以检查this document以获得更多信息。