Gist of problem–在开发过程中,我们通过在Jenkins中设置的管道生成了许多安装程序。管道使用git来获取版本信息——这是最后一个标记,加上提交计数。版本标签是根据年份、季度和该季度的发布号设置的——例如,2020年第4季度第1季度的版本标签可能看起来像2020.4.1。Jenkins作业是在每次提交到存储库时运行的,所以有很多安装程序。
对于面向用户的字符串,我们希望将版本保持为只有三个组件——<year>.<quarter>.<release>
。然而,对于开发来说,有更多关于我们正在使用的安装程序的信息是有用的——因此,附加提交计数适用于这种情况。但是,我们不希望在发布版本中出现这个额外的数字。
我的问题是,如何将开发和发布安装程序这两种情况平稳地结合起来?我们希望测试人员能够轻松区分不同的安装程序,但确实希望面向用户的字符串不包含这些附加信息。我们正在从可执行文件中提取版本信息,但如果需要,我们可以在其他地方重新创建版本字符串。
有什么好的行业标准,或者更好的方法来处理这种情况吗?我们并不反对改进我们的构建流程——我们只是没有一位DevOps专家可以为我们回答这些问题
感谢您提供的任何建设性反馈和/或资源,我们将不胜感激。
通常,您可以在可执行文件中引入一个不同的选项:
-v
(--version
(仍然是您定义的面向用户的版本-b
(--build
(可以显示内部构建信息,如git describe
返回的信息,以获得精确的Git SHA+最后一个Git标记