是否可以使用具有多个工件的单个版本管道,这些工件将有条件地触发单独的阶段。
例:
(Build Artifact 1)
建立Web
的标签
(Build Artifact 2)
建立Identity
的标签
当我设置我的发布管道时,我创建了一个管道并添加了
(Build Artifact 1)
- > Web Stage
(Build Artifact 2)
- > Identity Stage
这两个工件都设置为自动触发释放并设置为After Release
我遇到的问题是,当我为(Build Artifact 2)
排队时,两个阶段都会部署。我只希望Identity Stage
部署,反之亦然。
我想在一个管道中的所有东西的原因是因为我的所有工件都包含在一个管道中,我知道如果我创建单独的管道我可以这样做。
更多地考虑您的情况,可能更清晰(阅读:没有失败的阶段)让第三个工件生成CI,这是在其他2个CI构建的构建完成时触发的。该中介构建将根据其被触发的原因(即Web
或Identity
)进行标记。此构建的工件将重新打包上游工件(使用下载工件任务),允许您的发布管道使用一个可能具有2个不同标记值的工件。这样可以在预释放条件下为您的神器滤镜提供更多的牙齿。
Web_CI
\ #Web - - Web Development - - Web Production
- -\ /
> = WebIdSwitch_CI - - <
- -/ \
/ #Id - - Id Development - - Id Production
Id_CI
原始答案
我可能错了,但我认为你需要根据RELEASE_TRIGGERINGARTIFACT_ALIAS
中的值运行各个阶段。
可能有几种方法可以做到这一点,例如
可以使用$(Release.TriggeringArtifact.Alias)
在管道上访问该变量,也可以使用$env:RELEASE_TRIGGERINGARTIFACT_ALIAS
在powershell中访问该变量。
我不确定你是否已经在你的舞台上使用了Artifact Filters作为预部署条件的一部分,但这可能是另一种不那么重要的方式。我必须把测试管道放在一起然后尝试一下。