首页 > 解决方案 > 根据 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

标签: azure-devops

解决方案


您可以将以下脚本添加到模板 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

您可以查看此文档以获取更多信息。


推荐阅读