git - 语义版本控制自动化

标签 git continuous-integration issue-tracking semantic-versioning

在我读完 this article 之后和另一个,我发现版本控制是程序员的决定,所以我相信 CI 系统无法理解这个包的版本(CI 系统无法理解pulled commit 是一个补丁,一个新特性)。

但是,程序员无法知道如何将补丁(错误、功能等)链接到发布版本编号标识

根据语义版本控制:

  • 当您只发布错误修复等时,增加补丁版本(例如从 2.3.4 到 2.3.5)
  • 在添加新功能时增加次要版本(例如从 1.3.2 到 1.4.0)
  • 在引入重大更改时增加主要版本(例如从 3.2.9 到 4.0.0)

我的语义版本将遵循下一个模式:1.2.3+7489ab44d3,其中 1 是主要版本号,2 是次要版本号,3 是补丁或错误号。那么 +7489ab44d3 将是 CI 系统上构建的作业标识。

因此,此模式的第一部分取决于人脑,最后一部分在 CI 系统下。

我也读过,可以使用问题跟踪器系统来根据某种信息整理每个问题并将其提供给 CI 系统。

为了实现这一目标,提供自动化的最佳方式是什么?

最佳答案

我们正在使用插件来做到这一点。

https://wiki.jenkins-ci.org/display/JENKINS/Version+Number+Plugin

我们知道基于分支名称的版本是什么,并根据它生成适当的内部版本号。

它是构建过程中的一个单独任务,您可以使用多个系统和插件来实现它。

关于git - 语义版本控制自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34705353/

相关文章:

Git 樱桃选择错误

git - 如何在 OpenShift 部署中指定除 master 之外的特定分支?

search - JIRA:搜索给定链接类型的所有问题

git - 如何在 GitHub 上显示我的存储库中的问题

指定问题编号的 Javadoc

git - 防止 pull 请求构建触发持续部署触发器 Azure DevOps 服务器

android - 为什么有的模块显示蓝色名字,有的显示白色名字

java - 如何将ZAP与JMeter集成?

python - 将生菜与 TeamCity 集成

azure - 如何使 Docker 容器可用于 Azure Pipelines 中的任务?