首页 > 解决方案 > 如果 Git Workflow 具有增量版本控制的功能,为什么我们需要语义版本控制?

问题描述

我目前正在学习如何在 Jenkins/Maven/Git 中为我的项目实现语义版本控制,我今天读了这篇文章,似乎我们可以使用 Gitflow 自动获得递增版本控制,那么使用语义版本控制有什么意义呢?

我对所有这些都是新手,仍在试图弄清楚它们之间的关系,并且我在网上搜索了几天,没有关于如何实现SV的示例或教程,我也阅读了这篇文章,我了解什么是SV但仍然不知道如何将它链接到 Jenkins/Maven/Git。我找到了一个名为 semantic-versioning-plugin 的 Jenkins 插件,但找不到与如何实现它相关的任何内容。

我还尝试更改 Jenkinsfile 中的配置,但它只会在每次推送到 Git 后更改 build_number,但这不是我想要的,我希望版本遵循 SV 中的规则。

如果有人可以解释或给我一个例子,那就太好了,这样我就可以看看。非常感谢。

标签: gitmavenjenkinsgitlabsemantic-versioning

解决方案


SemVer 用于通知您的客户有关更新的上下文。因此,如果您的软件当前具有该版本1.0.0并且您想要发布更新,您可以使用以下选项来增加版本:

  1. 如果您刚刚修复了一些错误,请增加PATCH ( )。1.0.1
  2. 如果您添加了一些新功能,请增加MINOR ( )。1.1.0
  3. 如果您删除了某些功能或引入了重大更改,请增加MAJOR ( )2.0.0

这样,您的客户就可以确切地知道会发生什么,他们甚至可以自动化更新过程。

要在您的工作流程中实施此模式,您只需在每次发布更新时手动增加版本。但是您也可以(并且可能应该)使用自动为您执行此操作的工具。大多数工具使用git 标签提交消息或手动触发器的组合来实现这一点。

也许这对您来说可能很有趣:https ://blog.armesto.net/automatically-versioning-your-application-on-jenkins-x/

如果您想了解有关 SemVer 的更多信息,我也可以推荐Stephan Bönnemann的演讲:https ://www.youtube.com/watch?v=tc2UgG5L7WM


推荐阅读