azure-pipelines - 如何使 Gitversion VSTS 在 master 上增加版本号?

标签 azure-pipelines gitversion

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

我有一个带有 dotnet 核心项目的主分支和一个名为“Release/1.0.0”的发布分支。当我创建一个 pull-request 并将 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 branch Release/1.0.0 to 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分支。

关于azure-pipelines - 如何使 Gitversion VSTS 在 master 上增加版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47062391/

相关文章:

sql-server - 在 Visual Studio Team Services 中以 Windows 用户身份运行

GitVersion:如何通过提交消息回滚 SemVer 数字更改?

docker - 如何使用 gitversion Docker 显示变量

azure - Azure Devops for Function App 中的交换槽任务

azure - 如何让 Playwright 使用我的管道中的配置文件

angular - 在 Azure 中部署 Angular 应用程序并使用 VSTS 配置 CI/CD

Teamcity - 执行 Git Fetch 以进行代理端 checkout

linux - 在linux上 Electron 版本无法定期创建rpm包

asp.net-core - Azure Pipelines 在脚本中使用包含换行符的字符串值设置变量