azure-devops - 根据 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
解决方案
您可以将以下脚本添加到模板 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
您可以查看此文档以获取更多信息。
推荐阅读
- google-contacts-api - Google ContactsQuery GData API 返回间歇性“500 内部服务器错误”
- c# - Dapper.Contrib + MS Access:错误 - 在 SQL 语句结束后发现的字符
- python - 如何避免使用烧瓶、SQLAlchemy 和 declarative_base 对数据库路径进行硬编码
- ios - 通用可解码协议 Swift 4.2 解包可选错误
- typescript - 全局库的打字稿类型定义
- api - Vue axios 获取 http 不返回响应数据
- angularjs - AngularJS UI Bootstrap - 带有 Bootstrap 4 的下拉按钮
- python - 如何使用 plt.bar 为每个字典键绘制一个元组或值列表
- python - 语义分割 DeeplabV3+ 中的 Tensorflow OOM (Out of memory) - 评估模式
- python - 无法成功执行以下脚本