如果下载的工件比在 azure devops 中部署的工件更新,有没有办法只 运行 部署作业?

Is there a way to only run a deployment job if the downloaded artifact is newer than the one deployed in azure devops?

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

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

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

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

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

任何方向将不胜感激,提前致谢。

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

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

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

神器发生变化时,会触发相应的阶段,其他阶段不会运行。