[英]Azure DevOps Releases skip tasks
我目前正致力于在 Azure DevOps 2020(内部部署)中为我的公司实施 CI/CD 管道。 有一个要求我似乎无法方便地解决:根据用户在发布管道中的输入跳过某些任务。
我想要的是:用户手动创建新版本并决定是否应执行任务组。
代理任务:
1. Powershell
2. Task Group (conditional)
3. Task Group
4. Powershell
我试过的:
任何帮助将不胜感激!
取决于管道运行的标准是什么。 一项建议是两条流水线调用相同的模板。 并且每个管道中可能嵌入了一个真/假作为参数传递给模板。
模板将包含定义的所有任务; 但是,有条件的将具有以下条件:
condition: and(succeeded(), eq('${{ parameters.runExtraStep}}', true))
此条件将在任务级别设置。
可以在相应的管道中定义任何特定的触发器。
以下是有关Azure YAML 模板的文档,可帮助您入门。
不幸的是,不可能为任务组添加自定义条件,但此功能在路线图上。 检查以下用户声音,您可以投票:
解决方法是您可以克隆发布定义(右键单击发布定义> 克隆),然后删除一些任务或任务组并保存它,然后您可以根据详细场景创建具有相应发布定义的发布。
最后我决定坚持使用 Releases 并将我的任务分成 3 个代理工作。 作业 1 带有第一个 powershell,作业 2 带有条件任务组,仅当变量为真时才执行,作业 3 带有其余任务。
正如cece-dong和dreadedfrost所说的那样,我可以使用 yaml 管道为条件实现可选的运行时参数。 不幸的是,其中一个任务组需要来自 yaml 管道的特定工件。 大多数时候它是“最新的”,这可以通过下载工件任务轻松实现,但有时会选择以前的工件。 我发现没有一种简单的方法可以像在默认情况下有一个包含工件列表的下拉列表的版本一样方便的方式来实现这一点。
如果有人对如何在 yaml 管道中处理不同的构建工件感兴趣,可以找到这篇博文。
谢谢你的协助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.