首页 > 解决方案 > 如何为发布流程配置 GitVersion?

问题描述

我正在尝试配置 GitVersion 以使用发布流分支策略。

在此处输入图像描述

基本上,我有一个主线主分支、发布、功能和修复分支。Feature 和 Fix 分支是从 Master 分支创建的,并通过拉取请求合并回 Master。在 sprint 结束时,我从 Master 创建一个 Release 分支,该分支将持续到下一个 sprint 结束时,将创建一个新的 Release 分支。Release 分支不会合并回 master。它们甚至可以在创建新的 Release 分支后被删除。如果需要修补程序,它将在从创建并合并回 master 的 Fix 分支上开发,然后将其挑选到当前的 Release 分支中。我只对主要版本使用 git 标签。

回到 GitVersion,我想对其进行配置,以便在创建新的发布分支时增加次要版本号,并在发布分支上有新提交时增加补丁号(从修复分支中挑选)。

有没有人已经这样做并且可以帮助我?

标签: gitbranching-strategygitversion

解决方案


我们使用与这个非常相似的流程(实际上是基于它)。我们在发布分支上进行修补程序,我们还在发布分支之前创建预发布分支(方便在 octopus-deploy 中有单独的通道)。

经过一番挣扎,我最终得到了自己的PowerShell 脚本。该脚本很简单并且运行速度非常快(接近 1 秒,与 GitVersion 不同,它可以在我们拥有大量分支的庞大存储库上运行 5-15 分钟)。现在,结果如下所示:

它主要设计用于 TeamCity,但我认为您可以轻松地将其更改为您需要的脚。您可以在脚本注释中查看计算算法的详细说明。在这张图上也简要说明了:

警告:在未来/主题分支中,与 GitVersion 不同,脚本始终使用来自 teamcity 的不断增长的构建计数器,而不是提交计数器。当我发现我们的大学使用武力推动(一些“干净的历史”政治)时,我不得不这样做,而且我不能依赖提交历史。


推荐阅读