是否有可能拥有一个包含多个工件的发布管道,这些工件将有条件地触发单独的阶段。
示例:
BuildPipelineA 从 AppRepo、Dev 分支构建 /PathA 并发布工件 ArtifactA。 ArtifactA 应部署到阶段 A。
BuildPipelineB 从 AppRepo、Dev 分支构建 /PathB 并发布工件 ArtifactB。 ArtifactB 应部署到阶段 B。
这两个工件都在一个发布管道中,我遇到的问题是当我将构建排队为BuildPipelineA时,成功构建后,将创建发布管道并将ArtifactA部署到阶段A,工件B(最后一个成功的构建工件) 被部署到 B 阶段。
我想要实现的是,由于BuildPipelineB未触发并且没有发布最新的Artifact B,因此当ArtifactA触发发布时,不应将其部署到stage B,反之亦然
我想要实现的是,由于 BuildPipelineB 没有被触发,并且没有发布最新的 Artifact B,所以当 ArtifactA 触发发布时,它不应该部署到阶段 B,反之亦然
根据您对情况的描述(相同的仓库,相同的分支),恐怕没有这样的内置功能可以直接满足您的要求。
要解决此问题,您可以在阶段 -> 作业中设置条件。
可以使用这个变量来进行判断:RELEASE.TRIGGERINGARTIFACT.ALIAS.
代表触发发布的工件名称。
这是一个例子:
发布阶段:
状况:
eq(variables['RELEASE.TRIGGERINGARTIFACT.ALIAS'], '_PipelineA')
当 Pipeline A 触发 Pipeline 时,它将运行 Stage1 中的代理作业,并跳过 Stage2 中的代理作业。