具有多个工件和阶段的Azure DevOps发布管道

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

是否有可能拥有一个包含多个工件的发布管道,这些工件将有条件地触发单独的阶段。

示例:

BuildPipelineAAppRepoDev 分支构建 /PathA 并发布工件 ArtifactAArtifactA 应部署到阶段 A

BuildPipelineBAppRepoDev 分支构建 /PathB 并发布工件 ArtifactBArtifactB 应部署到阶段 B

这两个工件都在一个发布管道中,我遇到的问题是当我将构建排队为BuildPipelineA时,成功构建后,将创建发布管道并将ArtifactA部署到阶段A,工件B(最后一个成功的构建工件) 被部署到 B 阶段。

Example Pipeline Image

我想要实现的是,由于BuildPipelineB未触发并且没有发布最新的Artifact B,因此当ArtifactA触发发布时,不应将其部署到stage B,反之亦然

azure-devops azure-pipelines-release-pipeline azure-devops-artifacts
2个回答
0
投票

我想要实现的是,由于 BuildPipelineB 没有被触发,并且没有发布最新的 Artifact B,所以当 ArtifactA 触发发布时,它不应该部署到阶段 B,反之亦然

根据您对情况的描述(相同的仓库,相同的分支),恐怕没有这样的内置功能可以直接满足您的要求。

要解决此问题,您可以在阶段 -> 作业中设置条件。

可以使用这个变量来进行判断:RELEASE.TRIGGERINGARTIFACT.ALIAS.

代表触发发布的工件名称。

这是一个例子:

发布阶段:

状况:

eq(variables['RELEASE.TRIGGERINGARTIFACT.ALIAS'], '_PipelineA')

当 Pipeline A 触发 Pipeline 时,它将运行 Stage1 中的代理作业,并跳过 Stage2 中的代理作业。


0
投票

支持在一张 CD 中包含多个工件,并且仅将特定工件部署到一个阶段。

这是照片,从多个工件中选择您想要包含在 Azure 资源部署中的工件。

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