gpt4 book ai didi

azure-devops - 具有多个工件的 AzureDevOps 发布管道

转载 作者:行者123 更新时间:2023-12-04 21:02:38 28 4
gpt4 key购买 nike

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

示例:
(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 构建的构建完成时触发。该中介构建将根据其触发原因进行标记(即 WebIdentity )。此构建的工件将重新打包上游工件(使用下载工件任务),允许您的发布管道使用一个可能具有 2 个不同标签值的工件。这使您在预发布条件下的神器过滤器有更多的齿。

Web_CI                            
\ #Web - - Web Development - - Web Production
- -\ /
> = WebIdSwitch_CI - - <
- -/ \
/ #Id - - Id Development - - Id Production
Id_CI


原答案

我可能是错的,但我认为您需要根据 RELEASE_TRIGGERINGARTIFACT_ALIAS 中的值运行阶段。 .

可能有几种方法可以做到这一点,例如
  • 在发布后为每个工件设置一个缓冲阶段,如果值不正确则让它们失败(移动您的工作阶段以在其缓冲后执行)
  • 用新的第一个任务检查工作并失败
  • 为每个任务编写一个条件执行选项,以确保如果触发工件不正确,它们都不会执行

  • 可以使用 $(Release.TriggeringArtifact.Alias) 在管道上访问该变量或在 powershell 中使用 $env:RELEASE_TRIGGERINGARTIFACT_ALIAS .

    我不确定您是否已经在您的舞台上使用 Artifact Filters 作为您部署前条件的一部分,但这可能是另一种不太像黑客的方式。我必须将测试管道放在一起并尝试一下。

    关于azure-devops - 具有多个工件的 AzureDevOps 发布管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55734824/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com