auto_build
#!/bin/bash
BRANCH_NAME=$1
BRANCH_DIR=${BRANCH_NAME//\//_}
# 在以分支名命名的目录下编译分支
if [ ! -d "$BRANCH_DIR" ]; then
mkdir "$BRANCH_DIR"
fi
cd $BRANCH_DIR
WORKDIR=`pwd`
LOGDIR=`pwd`/logs
if [ ! -d "$LOGDIR" ]; then
mkdir "$LOGDIR"
fi
STEP=1
ONE=1
function Log(){
echo `date '+%Y-%m-%d %H:%M:%S'` "[$STEP] $1"
STEP=`expr $STEP + $ONE`
}
# 清空目录并拉取tygit代码
rm -rf ./ludo-srv
rm -rf ./ludo-protobuf
Log "git clone"
git clone https://tygit.touch4.me/rich-joy/ludo-srv.git > ${LOGDIR}/git.log
git clone https://tygit.touch4.me/rich-joy/ludo-protobuf.git >> ${LOGDIR}/git.log
cd ludo-srv
# 切换分支
Log "git checkout $BRANCH_NAME"
git checkout $BRANCH_NAME > "$LOGDIR/checkout.log"
# 更新包依赖
Log "go mod tidy"
go mod tidy > "$LOGDIR/gomod.log"
# 编译代码
Log "build"
echo "replace tygit.touch4.me/rich-joy/ludo-protobuf => ${WORKDIR}/ludo-protobuf" >> go.mod
sh build.sh > "$LOGDIR/build.log"
# 运行测试
# 测试有问题,测试需要先启动服务
Log "run test"
sh run_test.sh > "$LOGDIR/test_result.log"
echo ""
#echo "test fail grep"
grep FAIL "$LOGDIR/test_result.log"
echo ""
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
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
编辑 (opens new window)
上次更新: 2023/02/24, 10:34:03