#!/usr/bin/env bash # 根据CHANGELOG.md中的最新版本号,决定是否更新version.go和以及打git tag # # 步骤: # 1. 提交所有代码 # 1-. 检查配置文件中的配置文件版本号和代码中的配置文件版本号是否匹配 # 2. 修改CHANGELOG.md(并手动提交CHANGELOG.md) # 3. 执行gen_tag.sh #set -x # CHANGELOG.md中的版本号 NewVersion=`cat CHANGELOG.md| grep '#### v' | head -n 1 | awk '{print $2}'` echo 'newest version in CHANGELOG.md: ' $NewVersion # git tag中的版本号 GitTag=`git tag --sort=version:refname | tail -n 1` echo "newest version in git tag: " $GitTag # 源码中的版本号 FileVersion=`cat pkg/base/version.go | grep 'const LalVersion' | awk -F\" '{print $2}'` echo "newest version in version.go: " $FileVersion # CHANGELOG.md和源码中的不一致,更新源码,并提交修改 if [ "$NewVersion" == "$FileVersion" ];then echo 'same tag, noop.' else echo 'update version.go' gsed -i "/^const LalVersion/cconst LalVersion = \"${NewVersion}\"" pkg/base/version.go git add pkg/base/version.go git commit -m "${NewVersion} -> version.go" git push fi # CHANGELOG.md和git tag不一致,打新的tag if [ "$NewVersion" == "$FileVersion" ];then echo 'same tag, noop.' else echo 'add tag.' ${NewVersion} git tag ${NewVersion} git push --tags fi