Azure devops 只发布一次VSTS构建工件
我正在VST中构建一个连续部署管道。它看起来是这样的:Azure devops 只发布一次VSTS构建工件,azure-devops,Azure Devops,我正在VST中构建一个连续部署管道。它看起来是这样的: Trigger->Staging->Approval->Live 在这种情况下: 触发器每天10:00(业务要求) 批准一名高级员工需要审查阶段并批准live的更改 VSTS有一个通知系统,可以为批准列表发送电子邮件,这很好 然而,问题是,可能有一些情况下,一整天都没有变化,但发布仍然会被触发并发送电子邮件。这将是垃圾邮件的人。是否有一种方法来配置流,以便在构建工件已经成功发布时不会触发发布?或者针对这种情况的其他解决方法?无论工件是否更新
Trigger->Staging->Approval->Live
在这种情况下:
触发器
每天10:00(业务要求)
批准
一名高级员工需要审查阶段并批准live的更改
VSTS有一个通知系统,可以为批准列表发送电子邮件,这很好
然而,问题是,可能有一些情况下,一整天都没有变化,但发布仍然会被触发并发送电子邮件。这将是垃圾邮件的人。是否有一种方法来配置流,以便在构建工件已经成功发布时不会触发发布?或者针对这种情况的其他解决方法?无论工件是否更新,每次发布都会发送电子邮件通知 而且,没有办法只发送电子邮件通知,因为工件是从所有预定发布中更新的
如果您希望审批人只接收更新工件的电子邮件,则解决方法是将计划触发的发布更改为持续部署。您可以添加其他发布环境,通过PowerShell检查当前工件版本(例如Build.SourceVersion,check),如果已经成功发布,则任务失败 对于临时环境,请选择“环境后”选项,然后选择“上一个环境” 另一方面,如果源或定义已更改,则可以通过仅启用计划生成的计划生成来执行此操作
我同意最好的方法是持续部署,但在这种情况下,这是不可能的,因为数据库更新的时间窗口很小。您的回答让我想到,可以将CD与
部署前批准
功能将此部署推迟到
一起使用,以将批准推迟到10:00,但我并不真正喜欢这种方法,因为它很难累积更改,并且可能会带来一些意外行为。但谢谢你的主意。这可能有用。我将把你的建议稍加修改为:1。大约2。添加额外的构建任务标记构建
和发布
标记,并将条件添加到仅标记计划构建3。启用CD触发器,但使用release
标记对其进行过滤。现在,我将能够拥有不会发布任何内容的CI构建,以及只有在有新更改时才会运行的计划构建。现在,如果repo中没有任何更改,我只需要将我的TFS服务器更新到具有此酷功能的版本即可跳过计划的构建。谢谢!