如何使用针对不同分支的多个工件在 DevOps 的单个阶段上运行?

Posted

技术标签:

【中文标题】如何使用针对不同分支的多个工件在 DevOps 的单个阶段上运行?【英文标题】:How to use multiple artifacts targeting different branches to run on single stage in DevOps? 【发布时间】:2020-12-11 12:46:03 【问题描述】:

如何使用针对不同分支的多个工件在 devops 的单个阶段上运行? 如果工件过滤器包含在特定分支中,那么它是否会起作用,以便只拾取那些工件? 使用单阶段的原因是因为任务跨分支是通用的

同样,构建分支为 B2 时的 _CI_QA 工件。

因此,所有工件过滤器都在单个预部署条件下添加,并且只需要选择与构建分支匹配的那些过滤器

【问题讨论】:

我不确定你的意思。您想同时使用来自不同分支的工件吗?你有一些代码吗?可以分享一下吗? 是的,我想同时使用来自不同分支的工件 抱歉,确实如此。相同的工件,但来自不同的分支?还是来自不同分支的不同工件?工件是由一个管道生成的,对吧? 是的,来自不同分支的不同工件。每个工件仅由一个管道生成 你使用经典版本对吗? 【参考方案1】:

您需要的是两个实际链接到同一管道/构建的工件定义

第一:

第二个:

然后按每个工件过滤工件(步骤可选 - 如果您想要自动发布)

然后在工作定义上,您需要定义您想要获得的工件:

在这里你定义应该采用什么版本的工件:

另一种做法其实是使用下载神器步骤:

【讨论】:

我有链接到不同构建的工件。例如,针对 Dev 分支的 _CI_Dev 和针对 QA 分支的 _CI_QA。我将这两个工件都添加到管道中的工件列表中。在这种情况下,我是否需要像 Dev 和 QA 这样的多个阶段来运行基于工件过滤器的工件特定的管道?另外,我只需要为 QA 分支添加门和批准

以上是关于如何使用针对不同分支的多个工件在 DevOps 的单个阶段上运行?的主要内容,如果未能解决你的问题,请参考以下文章

Azure DevOps(内部部署) - Minimatch模式下载工件的多个部分

Azure Devops角环境变量

Azure DevOps 项目管道无法从不同项目中的工件源访问 NuGet 包

多个工件源上的 VSTS 发布触发器不关心分支规范

如何使用 Azure Devops CLI 下载构建工件?

如何使用 Yarn 注册表作为 Azure DevOps 工件上游源?