【问题标题】:TFS Release - deploy same artifact(s) to different clients on different schedule(s)TFS 发布 - 按照不同的计划将相同的工件部署到不同的客户端
【发布时间】:2021-10-25 20:27:38
【问题描述】:

50 多个客户端使用相同的软件(WEB、SQL、REST 服务器)。它们都是隔离的,并使用不同的部署计划。 目前,我们使用 XAML 构建定义来准备代码并在一次运行中部署它。这需要大量资源来编译相同的源代码 50 多次,但它允许我们按照客户(或我们)选择的任何时间表将代码部署到特定的客户。 我想改变一次构建部署包的方法,并按他们的时间表为每个客户部署它/它们。 是否可以在 TFS Release 中设置?也许 50 多个版本使用相同的构建定义? 请记住,大多数客户每天晚上都会获得新版本(只是在不同的时间),有些可能会每周更新,有些可能会要求停止部署一段时间并按照他们的命令恢复。因此,“每周客户”必须获得 7 个版本才能获得最新版本。 “暂停的客户端”将累积一定数量的程序包,这些程序包将在恢复更新时应用到其服务器。 所有软件包都是增量的,我们不能只使用最新版本。

有什么建议吗? 谢谢。

【问题讨论】:

  • 什么版本的 TFS? “TFS 发布”是什么意思?至少有 3 或 4 种不同的事情可能意味着我无法想到。请准确地描述您当前的环境。
  • 我们目前使用 TFS 2015。升级到 TFS 2017(我们仍在某些领域使用 XAML 构建)。我们有 PROD 分支,其中包含生产站点的代码。相同的代码在不同的时间或一天部署给每个人。我需要一种方法来生成一个包并以不同的时间表将其部署到不同的客户端(某些时间表事先不知道,因此所有包都是增量的)。当客户准备好接收最新版本时,我们必须部署所有优秀的包以使它们更新到最新的代码......谢谢。
  • 在 TFS 构建和发布中玩了一点之后,我能够做到这一点。创建了创建工件的构建定义。创建了多个使用这些工件的发布定义。我将每次创建新版本的工件时都设置为发布,并按计划设置发布部署。在我收集了几个版本并安排了部署之前,一切看起来都很有希望。即使选择一次部署一个,它们也被无序部署。这是 TFS 2017 中的错误还是我遗漏了什么。不可能是设计使然,为什么要在发布 1 或 2 之前部署发布 5...?

标签: tfs


【解决方案1】:

好的。我能够创建一个管道,每次创建新的构建/工件时都会创建发布。在内部,我创建了不同的环境,可以设置为按任何计划单独部署。除了部署多个版本外,一切都运行良好。如果我创建了 10 个版本并等待在凌晨 3 点部署到 QA 环境。 TFS 版本一一部署它们(每个设置),但它以随机顺序部署它们。因此,早上您可能会在 QA 环境中看到版本 1、3 或 7 的变化。

就此联系了 Microsoft 支持并得到“这是设计使然”的回复。

我不知道这种设计背后的人是谁,对我来说,这是发布管理和部署的主要问题。

显然,Azure DevOps 服务器可以实现正确的部署顺序,但只能在 YAML 管道中。经典管道仍然存在这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    相关资源
    最近更新 更多