【问题标题】:Visual Studio Team Services: Single Build Definition for Multiple BranchesVisual Studio Team Services:多个分支的单一构建定义
【发布时间】:2016-09-30 08:16:23
【问题描述】:

我们正在使用 Visual Studio 团队服务

我们有一个 Prod-Branch,它由我们的 Prod-Build-Definition 构建并由我们的 Prod-Release-Definition 部署到我们的测试/集成和生产环境。

在将每个 Prod-Release 部署到客户后,我们会从 Prod-Branch 创建一个 Prod-Rel-Version-x.x.x 分支(以防我们需要将其用于修补程序)。

在 Sprint 期间,我们正在开发一个开发分支,该分支由我们的 Dev-Build-Definition 构建并由我们的 Dev-Release-Definition 部署到我们的 DEV 环境中以供开发人员测试。

在 Sprint 之后(或不时),Dev-Branch 合并到 Main-Branch,然后合并到 Prod-Branch。从那里它被部署到客户测试的不同阶段。

当有 Hotfix-Case 时,我们会修复 Prod-Rel-Version-x.x.x 分支上的错误,并希望重用我们现有的 Prod-Build-Definition 来构建此 Hotfix-Version 并通过以下方式部署到不同阶段用于测试和使用此版本的现有 Prod-Release-Definition。

我们如何在这个不同的分支(Prod-Rel-Version-x.x.x 分支而不是 Prod-Branch)中重用我们的 Prod-Build-Definition?

当我查看构建定义时,我认为我有可能,只需将服务器路径(存储库 > 映射)从 $/NameOfOurApp/Prod 编辑到 $/NameOfOurApp/Prod-Rel-Version-x.x.x)...这应该可以解决问题吗?但是根据我的阅读,无法在服务器映射中使用 Build-Variables,因此我无法更改此变量,例如在 Queue new Build Dialog...

完成我的方案的最佳方法是什么?

【问题讨论】:

  • 这很难过 :( 。应该有一种方法可以从“队列新构建对话框”中选择“分支”。

标签: azure-devops


【解决方案1】:

这样做的唯一方法是创建一个下载所有分支的单一构建定义。然后使用任务中的变量来选择要构建的版本。这会很快变得非常混乱(而且很慢)。

相反,克隆构建定义要容易得多。或者,您可以从现有构建定义创建构建定义模板,并使用它来创建新的构建定义。

然而,一个更好的解决方案是不要依赖这么多分支。当你真的需要做一个修补程序时,你只需要分支,当你有很多更高的发现时,你只需要阶段分支阶段。通过改进您的工作方式,您将能够摆脱分支,为所有人简化工作。

更新

VSTS 和 TFS 2018 现在支持在工作区定义中使用变量。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 2023-03-24
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多