自动创建 release & deploy 文档

最近觉得每次项目转测和上线都要写文档有点浪费时间,特别是当好几个项目要一起转测上线的时候;之前一直想找个时间优化下这个流程,今天终于完成了。

目前的优化方案是先将转测、上线文档抽成公共模板;然后把版本内容和模块进行分离,在转测 Issue 中关联版本内容对应的 Task 或 Issue;最后通过脚本根据模块创建对应的转测及上线文档。

具体的模块就不贴出来了,就贴下脚本吧。

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
46
47
48
49
50
51
52
53
54
#!/usr/bin/env bash

if [[ $# < 1 || $# > 4 ]];then
echo -e 'useage: ./doc.sh version [branchName] [tag] [date] \n'
echo -e ' version: 当前版本号 \n'
echo -e ' branchName: 可选,当前转测分支名 \n'
echo -e ' tag: 可选,master 最新 tag \n'
echo -e ' date: 可选,转测时间'
exit 1
fi

version=$1

if [ -z $2 ]; then
# 获取当前执行脚本所在分支

# git rev-parse --abbrev-ref HEAD
branch=$(git symbolic-ref --short HEAD)
fi

if [ -z $3 ]; then
# 获取项目最近的 tag

tag=$(git describe --tags `git rev-list --tags --max-count=1`)
fi

if [ -z $4 ]; then
date=$(date +"%Y%m%d")
fi

release() {
echo "正在创建转测文档"

docName="prefix_$date"

cp -a ./release.md ../$docName.md
sed -i "" "s/BRANCH/$branch/g;s/DATE/$date/g" ../$docName.md

echo -e "转测文档创建成功 \n"
}

deploy() {
echo "正在创建上线文档"

cp -a ./deploy.md ../deploy/$branch.md
sed -i "" "s/VERSION/$version/g;s/TAG/$tag/g" ../deploy/$branch.md

echo -e "上线文档创建成功 \n"
}

echo -e "转测分支名:$branch, 版本号:$version, tag: $tag 转测时间:$date \n"

release
deploy