背景
客户端每次发热更都要记录下发布的热更版本号,之前都是手动写 txt 记录,我嫌麻烦,转而用手动打 git tag 来处理。后来把打热更的 Jenkins 也给 QA,让他们自己去发布。这就导致程序没法实时跟进 tag,因为已经不太关心什么时候发布热更了,于是决定把 tag 也加进自动流程。
解决
什么时机打
在热更白名单发布后打 tag,这样即保证当前 git 节点是发布时的节点,并且即使 tag 冲突打失败了,也不会影响发布,这样不会哪天有啥突发情况非要程序处理。在 Jenkins 跑完所有打包命令,最后再加一个 Excute Shell 项即可。
怎么提取想要的 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
结果