我已经使用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的MergeMessageBaseVersionStrategy无法处理此问题。如果我将发布合并为常规合并,则版本号会增加。
最佳答案
您应该在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。