首页 > 解决方案 > 如果下载的工件比部署在 azure devops 中的工件更新,有没有办法只运行部署作业?

问题描述

当前场景是我想要一个具有多个工件(一个函数和多个 api)的发布管道。每个都有一个 cd 触发器,除了一个现在是手动的 prod。

如果部署的管道与原始管道相同,在管道中是否有办法阻止特定作业运行?

例如,对其中一个 api 进行了更改,但其余部分保持不变我希望创建和部署该版本,但只运行链接到该特定工件的部署作业。

原因是,对于部署到生产环境,最好将我希望部署的所有工件都部署在一个地方,而部署到 prod 所需要做的就是点击部署,并且如果最新的工件更新然后部署它的那个会被部署,但如果不是,则该部署将被跳过。

现在每个工件都在一个单独的发布管道中,并且每个都被单独部署,这意味着我们保留一个单独的文档,其中包含需要为一组特定更改部署的所有发布管道的列表。

任何方向将不胜感激,在此先感谢。

标签: azure-devopsazure-pipelinesazure-pipelines-release-pipelinerelease-management

解决方案


我认为你可以通过多阶段和触发器来做到这一点。您可以按照以下步骤操作:

  1. 创建发布管道。
  2. 添加所有工件。
  3. 创建多个阶段。根据您的要求,您可能需要与工件一样多的阶段。
  4. 为每个阶段设置触发器。单击舞台左侧的闪电图标。在“触发器”中,选择“Afer release”。然后启用“工件过滤器”。选择与此阶段对应的工件作为触发器。这是一个例子:

在此处输入图像描述

然后您的发布管道将如下所示:

在此处输入图像描述

当一个工件发生变化时,会触发相应的阶段,并且不会运行其他阶段。


推荐阅读