【问题标题】:Is it possible for two artifacts to trigger a pipeline, but only part of it?两个工件是否有可能触发管道,但只是其中的一部分?
【发布时间】:2019-08-12 17:52:39
【问题描述】:

假设我有这样的发布管道(图片来自 Microsoft Dev 论坛上的类似问题):

master 和 hotfix 构建都会触发管道,但我希望 master 只触发顶行,而 hotfix 只触发底行。微软回应了那篇文章并表示有两个完全独立的管道,一个用于主管道,一个用于修补程序。我希望它们都在一个屏幕上,因为它们是相互关联的。

我尝试了工件过滤器,但没有微软论坛上的 OP 抱怨的那种行为,哈哈。

关于如何在单个管道中执行此操作的任何想法?我确实将其设置为仅将主工件放在顶行,仅将修补程序工件放在底行,但如果相应的工件没有更改,我希望它甚至不部署。

编辑:我确实提到这张图片是从 Microsoft 论坛上的类似帖子中提取的 :)。当我的管道在概念上相同时,我不想通过 VPN 来获取管道的实际屏幕截图。

假设顶行是APP TIER,底行是WEB TIER。我想要一个用于部署的“控制面板”,但如果只有 APP TIER 发生了变化,则部署 WEB TIER 是没有意义的,反之亦然。

我可能更喜欢统一的管道,并将所有内容部署在两个完全独立的管道上,这两个管道可以满足我的管理难题。

附:我们不是 CD 店,更像是 2 周冲刺。

我有点想像我需要将最后的版本号保存在某个地方并编写一个函数来检查它们是否已更改等。

【问题讨论】:

  • 顶行和底行如何相互关联?看起来您希望主版本中的更改触发开发环境的发布,以及修补程序版本中的更改以发布到暂存环境。我会将它们放在单独的管道中,但可能比我看到的要多。
  • 为什么不对工件设置过滤器?
  • @4c74356b41 伪影过滤器不能这样工作。他们无法检测到新版本。在这里查看微软的回答:developercommunity.visualstudio.com/content/problem/262471/…这就是我提出问题的原因,看看是否有人有解决方法
  • define 无法检测到新版本,它们触发新工件就好了
  • @4c74356b41 如果您检查该链接,则发帖者与我所说的问题相同。如果我只进行 APP TIER 构建,则会触发管道,但它会部署 APP TIER 行和 WEB TIER 行。我希望 APP TIER 构建仅触发 APP TIER 行,而 WEB TIER 仅触发 WEB TIER 行。我已经设置了工件过滤器,但正如该链接中所述,它们不能那样工作。

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline


【解决方案1】:

两个工件是否有可能触发管道,但只有一部分 呢?

对于这个问题,恐怕目前 azure devops 还不支持。如果您希望不同的工件分别触发不同行阶段的部署,最好创建两个管道,在每个管道中设置工件以触发所需阶段的部署。

如果您认为两个工件只触发一部分管道是必要的,您可以在我们的Develop Community site 中提交功能请求。我们的 PM 和产品团队将很乐意审查您的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2012-10-23
    • 2019-03-05
    相关资源
    最近更新 更多