我希望我的微服务应用程序在运行时响应它的代码版本。为了实现这一目标,我会在未跟踪的文件中嵌入版本号,并且每个微服务在响应某个api呼叫时都会提供该号码。
版本号将通过提交脚本写入未跟踪文件。
使用git log --oneline | wc -l
是否是为每个git提交自动生成增量版本号的可靠方法? (其他可靠的替代品非常受欢迎......)
我的要求是每次提交都会生成一个高于之前所有提交的版本号。另一个要求是这不依赖于任何CI服务器,而是每个开发人员提交都会处理这个问题(这样就可以了甚至在有CI服务器之前。)
开发人员通常会执行的git tinkerings会破坏这个方案吗?
答案 0 :(得分:2)
出于脚本目的,请勿使用git log
和其他瓷器命令。在这种情况下,git rev-list --count HEAD
使用管道命令产生相同的结果。
无论如何,这听起来像是git describe
的一项出色任务。如果您使用标记,它将报告最接近的标记以及当前提交的前面距离。它还包括提交的SHA-1,因此版本不像纯提交计数度量标准那样不明确。
答案 1 :(得分:1)
微服务环境的替代部分解决方案:
发送回微服务版本的api将获取提交哈希值(通过提交脚本写入文件),并派生增量版本号(例如,获取repo并运行git rev-list --count {hash}
,然后将该号码返回给调用者。如果部署分支,这仍然没有任何意义。
答案 2 :(得分:1)
微服务环境的其他替代解决方案:
版本号将在git之外进行管理,因为git不会被削减。在部署时,部署工具将注册git哈希,并从我自己的版本微服务(将使用非常简单的数据库或文件)获取它的唯一递增版本号。 这种精简版本的微服务也将推动检查微服务的版本。