Azure DevOps - 是不是可以为特定日期和时间安排发布?

Posted

技术标签:

【中文标题】Azure DevOps - 是不是可以为特定日期和时间安排发布?【英文标题】:Azure DevOps - Is it possible to schedule a release for a specific day and time?Azure DevOps - 是否可以为特定日期和时间安排发布? 【发布时间】:2018-09-20 16:19:58 【问题描述】:

我正在使用 Azure-DevOps 发布管道来自动化部署。

我想安排在特定日期和时间创建发布。

但是根据下面的截图,只能选择一周中的几天。而且您不能将触发器指定为一次。

这是一个问题,因为触发器会导致每周在指定日期发生一次发布,我们必须记住在每次发布后关闭触发器,直到我们准备好再次发布。

VSTS 中的当前功能是否可以设置特定日期,并且只发布一次?

可能的解决方法?

【问题讨论】:

正如 DJ 所说,现在不可能。您可以提高自己的用户声音 here 提交您的请求 Zapier 还让您可以按照自己的节奏安排时间,zapier.com/apps/azure-devops/integrations 【参考方案1】:

编辑您的发布并单击工件下的“计划集”图标。您可以启用并“添加新时间”以重复执行。

否则,请考虑运行在每次构建时触发一次的预部署条件。

Azure Devops Releases screenshot

Azure Devops pre-deployment

【讨论】:

就是这样!这应该是答案吗?【参考方案2】:

我找到了一种实现一次性预定发布的非常简单的方法。

只需使用市场上的 VSTS CLI 工具...

https://marketplace.visualstudio.com/items?itemName=ms-vsts.cli

它由 MS 发布,从命令行启动构建和发布非常容易。

只需使用任务调度程序。

【讨论】:

如果您的服务器始终在运行,这是一个很好的解决方案。如果你有一个永远在线的服务器,我会推荐这个解决方案而不是我的解决方案,只是为了它的简单性。【参考方案3】:

您可以将Delay 任务添加到无代理阶段。遗憾的是,您必须指定分钟数而不是具体时间,因此需要一些心算才能解决这个问题。

我几乎总是在完成工作之前“按下按钮”,我只是希望它等待几个小时,直到其余用户注销系统,因此将其固定为 180 分钟不是问题。如果需要,您可以使用变量。

【讨论】:

【参考方案4】:

我们通过使用 Microsoft Flow 实现了这一点。 Zapier 不支持触​​发发布。

我们将流程的触发器设置为带有“产品发布”或“测试发布”字样的 Google 日历(可以使用 O365 等)事件的开始。根据事件的名称,我们让我们的流程确定要启动的发布。我们还让流程向我们的 Slack 频道发送一条消息,通知我们发布已经开始/完成。效果很好。

一个额外的好处是,开发人员必须向团队负责人发送邀请,并且他必须接受它,因为 Flow 仅在接受的事件上触发。因此,团队中的每个人都知道该版本有一个很好的附带好处。

我对 DevOps 没有内置此功能感到失望,但老实说,这个工作流程可能比他们构建的要好。

Zapier 不支持这一点太糟糕了,因为这是我们使用 Microsoft Flow 的唯一原因。

【讨论】:

以上是关于Azure DevOps - 是不是可以为特定日期和时间安排发布?的主要内容,如果未能解决你的问题,请参考以下文章

Azure DevOps 工作项附件上传日期

Azure Devops - 将 YAML 脚本中的变量设置为日期时间

如何将格式化日期插入 Azure DevOps“经典”发布管道的文件名?

Azure Devops 使用 Powershell 从特定组织中删除特定用户

Azure DevOps Server:Git权限设置

Azure DevOps对查询结果中的工作项进行重新排序