我有一个可供许多管道使用的作业模板,但是我只想在将参数作为值时才运行特定任务。我该怎么办。
为简单起见,请参见下面的模板示例部分,仅在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
答案 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以获得更多信息。