【问题标题】:TFS Release - deploy multiple releases on schedule in order of create date/timeTFS 发布 - 按创建日期/时间的顺序按计划部署多个版本
【发布时间】:2021-11-05 10:15:44
【问题描述】:

使用 TFS 2017。我有一个构建定义,可以创建要部署到 WEB 和 SQL 服务器的工件。由于一些限制,每个构建都有用于 SQL 部署和完全部署到 WEB 服务器的增量包。每次创建新版本的工件时,我都会创建新版本,但我们不想立即部署。我们的部署应该在特定时间开始。因此,发布定义具有按计划部署到的环境(比如说凌晨 3 点)。

现在,有时我们会在白天运行多个构建,创建多个版本以在凌晨 3 点部署。一切看起来都很棒,但是……在凌晨 3 点,所有待处理的版本都乱序部署(例如 5、3、1、4、2)。这不好,因为第 2 版将“清除”添加到第 3、4 和 5 版的更改。

我们如何强制部署发布的顺序?我已经设置了凌晨 3 点的时间表,一次只部署 1 个版本,但仍未获得预期的结果。

我知道可以选择仅部署最新版本,但这会使我们的流程复杂化很多(我们的构建为数据库生成增量包的原因之一,是的,版本 5 可能会更新相同的过程或已更新的视图到第 2 版,所以顺序很重要)。

无法做到这种简单且非常合乎逻辑的部署类型是很奇怪的。我错过了什么吗?

谢谢。

【问题讨论】:

  • 您的意思是即使您选择了选项一个接一个地部署它们,您仍然有这个问题吗?
  • 是的。它们“一次一个”部署,但顺序随机。在我的测试中,我创建了版本 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15 并等待部署。它们按以下顺序部署:6、8、10、7、4、9、2、5、3、1、12、11、13、14、15。在 TFS 2017 和 TFS 2018(本地)上进行了尝试-相同.

标签: deployment tfs release


【解决方案1】:

根据微软的说法,这种将不同版本随机部署到同一环境的奇怪且可能有害的问题是“设计使然”。

我正在跟进您,为您提供我们的评论答案 来自产品组。

回答:“这是预期的场景之一,如果发布 计划在某个时间运行(计划触发器),如果有多个 CI 触发 CD 在下一次计划运行之前生成,然后, 没有。排队等待代理选择的版本。什么时候 排定的时间命中排队的发布是由随机选择的 代理,我们看到了执行和创建顺序的差异。”

建议:在 YAML 管道中,有一个选项可用于 允许这些版本按它们生成的顺序运行,但 在经典管道中,我们只能选择部署最新的 释放和取消旧的。虽然作为旧版本 也可用但未部署,如果有任何恢复到 需要以前的版本,可以相应地部署。

我还没有尝试过 YAML 版本。这不是我们近期的解决方案,因为我们正在尝试升级到 TFS 2017(在我们将大部分构建从 XAML 转换为 vNext 之前)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多