如何为发布流程配置GitVersion?

时间:2019-01-31 08:51:59

标签: git branching-strategy gitversion release-flow

我想GitVersion配置与Release Flow分支策略的工作。

enter image description here

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

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

有没有人做到这一点已经和能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

我们使用与此流程非常相似的流程(实际上基于此流程)。 我们直接在发行分支上进行修补,并在发行分支之前创建预发行分支(方便在octopus-deploy中使用单独的通道)。

bit struggle之后,我以自己的PowerShell script结尾。 该脚本非常简单,并且运行起来非常快(与GitVersion不同,它接近1秒,它可以在具有大量分支的庞大存储库中运行5-15分钟)。 现在,结果看起来像这样:

它主要是为配合TeamCity使用而设计的,但我认为您可以轻松地将其更改为所需的脚。 您可以在脚本注释中查看计算算法的详细说明。 该图还简要解释了该问题:

注意事项: 在将来/主题分支中,与GitVersion不同,脚本始终使用来自Teamcity的不断增长的构建计数器,而不是提交计数器。当我发现比我们的大学使用强制推送(某些“干净的历史”政治)时,我不得不这样做,而且我不能依靠提交历史。

答案 1 :(得分:0)

我能够在发布流程的一部分中完成反模式工作。但是,如果您使用Azure DevOps,这并不是什么大问题,因为Microsoft提供了一种快速简便的方法来查看您的发布分支是否在master分支之前/之后。我已经对此进行了测试,并且我使用Release Flow来实现几乎完全自动化的版本控制,除了创建release分支和在每个sprint的末尾添加新标签。此方法也适用于我的Nuget软件包的语义版本2.0,我使用视图而不是后缀标签。

Modified Release Flow