forked from q191201771/lal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gen_tag.sh
executable file
·46 lines (38 loc) · 1.35 KB
/
gen_tag.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env bash
# 根据CHANGELOG.md中的最新版本号,决定是否更新version.go和以及打git tag
#
# TODO(chef): 新电脑没有gsed导致失败了
#
# 步骤:
# 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