我已经使用GitFlow存储库在VSTS中配置了我的git存储库。

我有一个带dotnet核心项目的master分支,一个名为“ Release / 1.0.0”的发行分支。当我创建请求请求并将release / 1.0.0分支合并回master时,它不会将其版本号增加到1.0.0。相反,它将版本号从0.1.0(基本后备)增加到0.1.1。

构建日志:

Calculating base versions
Fallback base version: 0.1.0 with commit count source xx
Git tag '0.1.0': 0.1.0 with commit count source xx
Base version used: Git tag '0.1.0': 0.1.0 with commit count source xx


但是,提交标签是Merge分支Release / 1.0.0到master。合并的分支标记为1.0.0。

我正在使用GitVersion的默认设置。我正在使用GitVersion VSTS任务。

这是gitversion配置:

assembly-versioning-scheme: MajorMinorPatch
mode: ContinuousDelivery
branches: {}
ignore:
  sha: []


我应该怎么做才能自动将master分支的版本设置为要合并的版本号?

更新:
我发现发生了什么“错误”。

发布被合并回拉请求。这会将提交消息设置为Merge PR ####。但是,gitversion的MergeMes​​sageBaseVersionStrategy无法处理此问题。如果我将发布合并为常规合并,则版本号会增加。

最佳答案

您应该在CI构建的master分支中添加GitVersion任务(或在PR完成后排队构建),而不是PR构建验证。

由于PR构建验证是在release/1.0.0分支真正合并到master之前触发的,因此Gitversion将检测master分支的版本(例如AssemblyInfo.cs文件中的版本)。

如果在CI构建中添加GitVersion任务(在release/1.0.0分支合并到master分支之后),则Gitversion将从release/1.0.0分支检测版本major.minor.patch = 1.0.0。

09-04 02:37