当前位置: 首页 > 知识库问答 >
问题:

Azure运营模式发布管道由所有(不是任何)多个工件的存在触发?

子车鸿运
2023-03-14

Azure DevOps 发布管道允许我指定多个输入项目,但自动触发仅发生在主要项目上。有没有办法对 N 个输入项目执行“全部等待”类型操作,以便我的发布管道仅在每个项目具有与某些指定值匹配的可用版本时才启动?

例如,假设我在一个存储库中进行了提交 M,该存储库具有多个不同的 CI 作业 A 和 B,这些作业花费的时间非常不同。一个 CI 作业 (A) 在几分钟内创建一个 NuGet 包作为项目,另一个 CI 作业 (B) 需要数小时才能创建 VM 映像。我想要一个将使用 NuGet 包和 VM 映像作为输入的发布管道。但是,如果我只是将最新版本的 A 和 B 用作发布管道中的输入项目,并在主项目(A 或 B)上使用 CI 触发器,那么当发布触发时,它可能会使用不匹配的项目版本,因为在我获取由其他 CI 管道创建的 2 个 VM 映像之前,来自 10 个不同提交的 10 个 NuGet 包已完成。我想也许构建/工件标签可以解决这个问题,这样我的版本就会等待所有具有相同标签的工件,但我不能在构建/工件标签过滤器中使用变量,这使得这不能真正修改为任何类型的自动计划/触发器。

这是适合这种类型工作流的模式吗?

共有1个答案

晋骏喆
2023-03-14

对于这个问题,基于您的工作流程,恐怕不可能实现完全自动化的发布。启用持续部署触发器将在每次新构建可用时创建一个新版本。由于两个工件不是同时生成的,因此两个匹配的工件不能作为自动发布中的源。

要在发行版中使用特定工件作为源代码,我们通常会在工件中指定版本。但这无法实现持续部署。一种方法是合并作业A和B来生成工件,这样就不需要担心工件的相应问题,但是根据您的实际情况,我不确定这样做的可行性。

对N个输入工件执行“全部等待”类型操作,以便我的发布管道仅在每个工件具有与某些指定值匹配的可用版本时启动

除了否定的答案,我认为你想要的是一个好主意!所以我发布了一个功能请求

 类似资料:
  • 在我们的Azure DevOps部署中,我们有一个生成并运行“子”管道的“主”发布管道。子管道从不直接运行。 目前,我们在主管道中使用Powershell脚本启动子管道,但我想知道是否有一个内置任务可以自动执行此操作?我已经看了任务列表,但是没有什么跳出。如果没有也没关系,但我想问问,以防我错过了什么。

  • 我正在尝试在Azure DevOps(内部部署)中配置发布管道以支持git流策略。我正在努力实现的目标: promise“发布/*”触发软件的构建并发布到QA的位置 promise“主控”从步骤1获取相同的软件构建(工件),并发布到生产位置 因此,当我做一个git-flow开始发布时,软件可用于测试/质量保证,当我完成发布时,它可供用户使用。 我的构建管道工作正常,它由发布分支触发,并以发布工件任

  • 我想知道是否可以在 Azure DevOps 生成管道“发布项目”任务中有条件地设置生成项目的名称?我想根据生成管道的输入生成不同的项目。例如,基于输入管道变量,我想生成三个工件之一(“红色”,“蓝色”,“绿色”)。是否可以根据输入变量指定在我的“发布项目”任务中生成的项目,或者仅生成三个生成管道是否更容易/更好?

  • 我现在有一个Azure DevOps发布管道,其中包含测试、验收和生产阶段,它们是按顺序触发的。当有新的生成可供部署时,将触发测试。 我遇到的问题是,所有阶段目前都部署了完全相同的工件。但这是错误的,因为它们部署到不同的环境,需要有自己版本的Web.config. 如何更改设置,使所有环境都能获得正确的软件包?我是否应该更改生成设置,以便为多个不同的配置生成,还是应该为每个环境分别生成?我如何选择

  • 最近刚刚构建了一个 Azure 管道,其中在一个阶段中,项目暂存目录中有不同的 zip 文件。我试图实现的是使用艺术任务将暂存文件夹中的所有zip文件发布到放置文件夹。 我在工件暂存目录中有两个存档的zip文件: $(Build.ArtifactStagingDirectory)/$(Build.BuildId). zip $(Build.ArtifactStagingDirectory)/cli

  • 我的任务是开发现有遗留应用程序的Azure DevOps实现。应用程序有一个QA团队,该团队使用500个自动化测试用例。此测试用例是使用量角器开发的。所有测试用例都是使用JavaScript开发的。 对于现有设置,以下是所采取的步骤:a.发布管道部署ASP。NET应用程序到Azure app services b。QA人员手动登录到VM并启动量角器测试。 我们可以使用Azure devOps管道中