Jenkins 自动打 Git Tag 背景 解决 结果

客户端每次发热更都要记录下发布的热更版本号,之前都是手动写 txt 记录,我嫌麻烦,转而用手动打 git tag 来处理。后来把打热更的 Jenkins 也给 QA,让他们自己去发布。这就导致程序没法实时跟进 tag,因为已经不太关心什么时候发布热更了,于是决定把 tag 也加进自动流程。

解决

什么时机打

在热更白名单发布后打 tag,这样即保证当前 git 节点是发布时的节点,并且即使 tag 冲突打失败了,也不会影响发布,这样不会哪天有啥突发情况非要程序处理。在 Jenkins 跑完所有打包命令,最后再加一个 Excute Shell 项即可。

怎么提取想要的 tag 名称格式

Shell字符串截取
Jenkins 自动打 Git Tag
背景
解决
结果

newVersion="$NewVersion" --1.19.2.3
bigVersion=${newVersion%.*.*} --1.19
curDate=$(date "+%Y%m%d") --20211018
tagname=$bigVersion'/'$newVersion'_'$curDate --1.19/1.19.2.3_20211018

怎么用 shell 打 git tag

先 cd 到工程目录,再执行 git 命令。
-m <tag附加的信息>
-f 强制覆盖

 cd $ProjectPath
 git tag $tagname -m "$TagMessage" -f
 git push origin $tagname -f

结果

Jenkins 自动打 Git Tag
背景
解决
结果
Jenkins 自动打 Git Tag
背景
解决
结果