如何在 Azure 发布管道中使用多个工件/阶段?

问题描述 投票:0回答:3

我有以下场景:

updates branch develop -> triggers DEV-CI -> triggers Release X
updates branch master -> triggers QA-CI -> triggers Release X
updates branch release -> triggers Prod-CI -> triggers Release X

在“Release X”中,我添加了所有 3 个工件(dev、qa 和 prod)和 3 个单独的阶段(dev、qa 和 prod)。我的目标是,如果分支开发更新,则发布到 DEV,如果主分支更新,则发布到 QA,依此类推,但发布管道不会启动,因为它需要所有 3 个工件都可用。

仅当我只有一对一时才有效,如下所示:

enter image description here

如果我添加其他工件,即使在每个特定工件的预部署条件中添加工件过滤器后,发布也不会开始,直到所有 3 个工件都可用。

是否可以执行我在这里尝试的操作,或者我必须为每个 CI 创建一个版本?

谢谢!

编辑

李回答后我又试了一次,但没有成功。即使只运行了 QA CI,这两个环境都会被触发。

结果是这样的: enter image description here

这里 QA 版本正在下载两个工件,即使有一个特定的工件过滤器:

enter image description here

这是生成该结果的设置:

enter image description here

enter image description here

enter image description here

enter image description here

azure-devops azure-pipelines azure-pipelines-release-pipeline continuous-delivery
3个回答
1
投票

我最近进行了测试,这些工件过滤器与存储库分支紧密耦合,这意味着如果您有来自同一分支的 2 个工件,那么它将触发您在工件过滤中拥有该分支引用的所有阶段。

您必须使用 GATES 来进行此类工件过滤。


0
投票

环境设置:使用 Azure DevOps Pipelines 在多个环境(DEV、INT、STAGING)上的 Azure 应用服务上部署 React SPA 应用程序

要实现每个环境部署多个工件的单个发布版本的部署,您必须执行以下操作:

  1. 在 YAML 管道中创建不同的阶段(DEV、INT、STAGING)(请参阅末尾的示例片段),并为每个环境提供唯一的工件目录名称。 (参见屏幕截图#1) enter image description here

  2. 每个环境的工件应如下所示:

enter image description here

  1. 接下来,在“Run on Agent”任务下配置代理作业时配置“Artifact Download”设置,并选择适当的构建工件文件夹以映射到此代理,该代理将被拾取并部署到 Azure 应用服务 enter image description here

  2. 确保部署 Azure 应用服务任务的“包或文件夹”设置指向正确的文件夹。 enter image description here

最后,您的 YAML 在该阶段应该如下所示: enter image description here


-1
投票

我测试了以下设置。为每个构建工件启用

Continuous deployment trigger
,并为每个阶段设置工件过滤器。

enter image description here

enter image description here

当 dev build 运行成功后,Dev 阶段会正常触发。

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.