Azure devops 只发布一次VSTS构建工件

Azure devops 只发布一次VSTS构建工件,azure-devops,Azure Devops,我正在VST中构建一个连续部署管道。它看起来是这样的: Trigger->Staging->Approval->Live 在这种情况下: 触发器每天10:00(业务要求) 批准一名高级员工需要审查阶段并批准live的更改 VSTS有一个通知系统,可以为批准列表发送电子邮件,这很好 然而,问题是,可能有一些情况下,一整天都没有变化,但发布仍然会被触发并发送电子邮件。这将是垃圾邮件的人。是否有一种方法来配置流,以便在构建工件已经成功发布时不会触发发布?或者针对这种情况的其他解决方法?无论工件是否更新

我正在VST中构建一个连续部署管道。它看起来是这样的:

Trigger->Staging->Approval->Live

在这种情况下:

触发器
每天10:00(业务要求)

批准
一名高级员工需要审查阶段并批准live的更改

VSTS有一个通知系统,可以为批准列表发送电子邮件,这很好


然而,问题是,可能有一些情况下,一整天都没有变化,但发布仍然会被触发并发送电子邮件。这将是垃圾邮件的人。是否有一种方法来配置流,以便在构建工件已经成功发布时不会触发发布?或者针对这种情况的其他解决方法?

无论工件是否更新,每次发布都会发送电子邮件通知

而且,没有办法只发送电子邮件通知,因为工件是从所有预定发布中更新的


如果您希望审批人只接收更新工件的电子邮件,则解决方法是将计划触发的发布更改为持续部署。

您可以添加其他发布环境,通过PowerShell检查当前工件版本(例如Build.SourceVersion,check),如果已经成功发布,则任务失败

对于临时环境,请选择“环境后”选项,然后选择“上一个环境”

另一方面,如果源或定义已更改,则可以通过仅启用计划生成的计划生成来执行此操作

  • 如果选中“源或定义已更改”选项,则创建新生成定义并启用仅包含计划生成的计划

  • 从发布定义中删除计划

  • 关联到该构建定义工件

  • 为工件启用连续部署触发器


  • 我同意最好的方法是持续部署,但在这种情况下,这是不可能的,因为数据库更新的时间窗口很小。您的回答让我想到,可以将CD与
    部署前批准
    功能
    将此部署推迟到
    一起使用,以将批准推迟到10:00,但我并不真正喜欢这种方法,因为它很难累积更改,并且可能会带来一些意外行为。但谢谢你的主意。这可能有用。我将把你的建议稍加修改为:1。大约2。添加额外的构建任务
    标记构建
    发布
    标记,并将条件添加到仅标记计划构建3。启用CD触发器,但使用
    release
    标记对其进行过滤。现在,我将能够拥有不会发布任何内容的CI构建,以及只有在有新更改时才会运行的计划构建。现在,如果repo中没有任何更改,我只需要将我的TFS服务器更新到具有此酷功能的版本即可跳过计划的构建。谢谢!