在 Azure DevOps 中是不是有一种 GUI 方法可以禁用基于 YAML 的管道中的任务?
Posted
技术标签:
【中文标题】在 Azure DevOps 中是不是有一种 GUI 方法可以禁用基于 YAML 的管道中的任务?【英文标题】:In Azure DevOps is there a GUI way to disable tasks in YAML based pipeline?在 Azure DevOps 中是否有一种 GUI 方法可以禁用基于 YAML 的管道中的任务? 【发布时间】:2020-04-06 13:58:26 【问题描述】:Azure DevOps 相当新,并将其用于基础架构即代码 Azure 部署。 使用经典发布管道,您可以进入管道、进入阶段并非常快速地启用/禁用该阶段中的任务
您将如何使用 YAML 管道做到这一点?
【问题讨论】:
【参考方案1】:除了用#
注释掉任务之外,我在这里提供另一种解决方法:
您可以尝试设置变量:enabled = false
,然后使用 YAML 文件中的变量。
steps:
- task: PublishSymbols@2
displayName: 'Publish symbols path'
inputs:
SearchPattern: '**\bin\**\*.pdb'
PublishSymbols: false
enabled: false
continueOnError: true
如果这样设置,这个任务将不会在作业中运行。
这个case提到了这个方法,具体可以参考一下。
【讨论】:
模板步骤似乎不支持enabled
变量。所以如果你有一个模板作为一个步骤而不是一个任务,有没有其他巧妙的方法可以跳过运行它而不是把整个块注释掉?【参考方案2】:
现在有了runtime parameters,您就有了一个 GUI 选项。 如果取消选中该复选框(见下图),则可以将该参数传递给管道。
[据我所知]有三种方法可以在任务中实现运行时参数,您还可以在作业/阶段中应用大部分逻辑(除了作业/阶段[当前]没有“启用”属性);
parameters:
- name: RunTask
displayName: Run task?
type: boolean
default: true
steps:
- pwsh: Write-Host "always run this task"
- pwsh: Write-Host "skip this task when checkbox unticked..."
condition: eq($ parameters.RunTask , true)
- pwsh: Write-Host "skip this task when checkbox unticked..."
enabled: $ parameters.RunTask
- $ if eq(parameters.RunTask, true) :
- pwsh: Write-Host "skip this task when checkbox unticked..."
【讨论】:
【参考方案3】:你真的不能从 GUI 中做到这一点。好吧,你可以,你只需用#
将它们注释掉。在编辑器中
【讨论】:
我认为可能是这种情况,不像使用 gui 发布版本那么容易,但你确实将管道作为代码......我猜是一种权衡。谢谢以上是关于在 Azure DevOps 中是不是有一种 GUI 方法可以禁用基于 YAML 的管道中的任务?的主要内容,如果未能解决你的问题,请参考以下文章
检查分支被锁定的次数以及锁定 Azure DevOps Rest API 的可能原因