我有一个Go codegen工具,在将其构建为二进制文件时,我想在构建时使用Go工具为它的主模块注入它自己的当前伪版本。
我知道对于依赖项,我可以使用 或 找到它们的伪版本。主模块的版本列为空。go list -m allgo list -m -f '{{ .Version }}' $MODULE
我知道我可以计算出当前的伪版本:
git describe --tags `git rev-list --tags --max-count=1`
和:
TZ=UTC git --no-pager show \
--quiet \
--abbrev=12 \
--date='format-local:%Y%m%d%H%M%S' \
--format="%cd-%h"
要得到一个合理的近似值,例如:v0.3.0-20210907161133-495c072cb418
在我拥有伪版本之后,我打算在构建时注入它,如下所示:
go build -ldflags="-X generate.version v0.3.0-20210907161133-495c072cb418" -o mytool ./main.go
但是,建议直接使用Go工具来获取当前的伪版本,而不是我在餐巾纸上解决的一些黑客抨击问题。关于如何做到这一点的任何建议?
陪伴而非守候
相关分类