Skip to content

Commit 3571aa1

Browse files
authored
[WIP]chore: optimize CI (#122)
1 parent 23648ce commit 3571aa1

File tree

117 files changed

+4136
-82
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+4136
-82
lines changed

.github/workflows/pr-check.yml

+2
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ jobs:
2222
2323
- name: Benchmark
2424
run: go test -bench=. -benchmem -run=none ./...
25+
26+

.github/workflows/push-check.yml

+11
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,14 @@ jobs:
3030
3131
- name: Unit Test
3232
run: go test -v -race -covermode=atomic -coverprofile=coverage.out ./...
33+
34+
- name: Set up Docker Buildx
35+
uses: docker/setup-buildx-action@v1
36+
37+
- name: Run test.sh
38+
run: |
39+
find . -name test.sh -print0 | while IFS= read -r -d '' script; do
40+
script_dir=$(dirname "$script")
41+
chmod +x "$script"
42+
(cd "$script_dir" && bash "./$(basename "$script")")
43+
done

async_call/run.sh

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
# 设置工作目录为项目目录
4+
cd ./
5+
6+
REPO_PATH="."
7+
8+
project="async_call"
9+
10+
echo "---------------------------------------"
11+
echo "Running project: $project"
12+
13+
# 启动 server
14+
cd "$REPO_PATH/server" || exit
15+
go run main.go > /dev/null 2>&1 &
16+
server_pid=$!
17+
cd - > /dev/null || exit
18+
19+
# 启动 client
20+
cd "$REPO_PATH/client" || exit
21+
go run main.go > /dev/null 2>&1 &
22+
client_pid=$!
23+
cd - > /dev/null || exit
24+
25+
# 当脚本退出时,停止 server
26+
trap 'kill $server_pid' EXIT
27+
28+
# 等待 server 和 client 结束
29+
wait $server_pid $client_pid

async_call/test.sh

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/bin/bash
2+
3+
# 设置工作目录为项目目录
4+
cd ./
5+
6+
REPO_PATH="."
7+
8+
# 初始化状态变量
9+
status=0
10+
project="async_call"
11+
12+
echo "---------------------------------------"
13+
echo "Running project: $project"
14+
15+
# 检查端口是否被占用
16+
if lsof -Pi :8888 -sTCP:LISTEN -t >/dev/null ; then
17+
kill -9 $(lsof -t -i:8888)
18+
fi
19+
20+
# 启动 server
21+
22+
cd "$REPO_PATH/server" || exit
23+
go run main.go > /dev/null 2>&1 &
24+
server_pid=$!
25+
cd - > /dev/null || exit
26+
27+
28+
# 等待 server 启动
29+
sleep 1
30+
31+
# 启动 client
32+
33+
cd "$REPO_PATH/client" || exit
34+
go run main.go > /dev/null 2>&1 &
35+
client_pid=$!
36+
cd - > /dev/null || exit
37+
38+
39+
# 等待 client 启动
40+
sleep 1
41+
42+
# 检查 server 和 client 是否仍在运行
43+
if kill -0 $server_pid && kill -0 $client_pid; then
44+
echo "Project run successfully: $project"
45+
echo "---------------------------------------"
46+
else
47+
echo "Project failed to run: $project"
48+
echo "---------------------------------------"
49+
status=1
50+
fi
51+
52+
# 杀死 server 和 client
53+
kill $server_pid $client_pid
54+
55+
56+
# 设置脚本的退出状态
57+
exit $status

basic/example_shop/run.sh

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#!/bin/bash
2+
3+
# 设置工作目录为项目目录
4+
cd ./
5+
6+
REPO_PATH="."
7+
8+
# 初始化状态变量
9+
status=0
10+
project="basic"
11+
12+
echo "---------------------------------------"
13+
echo "Running project: $project"
14+
15+
docker run -d -p 2379:2379 --name etcd quay.io/coreos/etcd:v3.5.0 /usr/local/bin/etcd --advertise-client-urls http://0.0.0.0:2379 --listen-client-urls http://0.0.0.0:2379
16+
17+
# 启动 item server
18+
19+
cd "$REPO_PATH/rpc/item" || exit
20+
go run main.go > /dev/null 2>&1 &
21+
item_server_pid=$!
22+
cd - > /dev/null || exit
23+
24+
25+
# 等待 item server 启动
26+
sleep 1
27+
28+
# 启动 stock server
29+
30+
cd "$REPO_PATH/rpc/stock" || exit
31+
go run main.go > /dev/null 2>&1 &
32+
stock_server_pid=$!
33+
cd - > /dev/null || exit
34+
35+
36+
# 等待 stock server 启动
37+
sleep 1
38+
39+
# 启动 client
40+
41+
cd "$REPO_PATH/api" || exit
42+
go run main.go > /dev/null 2>&1 &
43+
client_pid=$!
44+
cd - > /dev/null || exit
45+
46+
47+
# 等待 client 启动
48+
sleep 1
49+
50+
# 检查 server 和 client 是否仍在运行
51+
if kill -0 $item_server_pid && kill -0 $stock_server_pid && kill -0 $client_pid ; then
52+
echo "Project run successfully: $project"
53+
echo "---------------------------------------"
54+
else
55+
echo "Project failed to run: $project"
56+
echo "---------------------------------------"
57+
status=1
58+
fi
59+
60+
# 杀死 server 和 client
61+
kill $item_server_pid $stock_server_pid $client_pid
62+
63+
64+
# 设置脚本的退出状态
65+
exit $status

basic/example_shop/test.sh

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#!/bin/bash
2+
3+
# 设置工作目录为项目目录
4+
cd ./
5+
6+
REPO_PATH="."
7+
8+
# 初始化状态变量
9+
status=0
10+
project="example_shop"
11+
12+
echo "---------------------------------------"
13+
echo "Running project: $project"
14+
15+
# 检查端口是否被占用
16+
if lsof -Pi :8888 -sTCP:LISTEN -t >/dev/null ; then
17+
kill -9 $(lsof -t -i:8888)
18+
fi
19+
20+
cd "$REPO_PATH" || exit
21+
docker-compose up -d
22+
cd - > /dev/null || exit
23+
24+
# 启动 item server
25+
26+
cd "$REPO_PATH//rpc/item" || exit
27+
go run main.go > /dev/null 2>&1 &
28+
item_server_pid=$!
29+
cd - > /dev/null || exit
30+
31+
32+
# 等待 server 启动
33+
sleep 1
34+
35+
# 启动 stock server
36+
37+
cd "$REPO_PATH/rpc/stock" || exit
38+
go run main.go > /dev/null 2>&1 &
39+
stock_server_pid=$!
40+
cd - > /dev/null || exit
41+
42+
43+
# 等待 server 启动
44+
sleep 1
45+
46+
# 启动 client
47+
48+
cd "$REPO_PATH/api" || exit
49+
go run main.go > /dev/null 2>&1 &
50+
client_pid=$!
51+
cd - > /dev/null || exit
52+
53+
54+
# 等待 client 启动
55+
sleep 1
56+
57+
# 检查 server 和 client 是否仍在运行
58+
if kill -0 $item_server_pid && kill -0 $stock_server_pid && kill -0 $client_pid; then
59+
echo "Project run successfully: $project"
60+
echo "---------------------------------------"
61+
else
62+
echo "Project failed to run: $project"
63+
echo "---------------------------------------"
64+
status=1
65+
fi
66+
67+
# 杀死 server 和 client
68+
kill $stock_server_pid $item_server_pid $client_pid
69+
70+
71+
# 设置脚本的退出状态
72+
exit $status

basic/run.sh

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
# 设置工作目录为项目目录
4+
cd ./
5+
6+
REPO_PATH="."
7+
8+
project="basic"
9+
10+
echo "---------------------------------------"
11+
echo "Running project: $project"
12+
13+
# 启动 server
14+
cd "$REPO_PATH/server" || exit
15+
go run main.go > /dev/null 2>&1 &
16+
server_pid=$!
17+
cd - > /dev/null || exit
18+
19+
# 启动 client
20+
cd "$REPO_PATH/client" || exit
21+
go run main.go > /dev/null 2>&1 &
22+
client_pid=$!
23+
cd - > /dev/null || exit
24+
25+
# 当脚本退出时,停止 server
26+
trap 'kill $server_pid' EXIT
27+
28+
# 等待 server 和 client 结束
29+
wait $server_pid $client_pid

basic/test.sh

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/bin/bash
2+
3+
# 设置工作目录为项目目录
4+
cd ./
5+
6+
REPO_PATH="."
7+
8+
# 初始化状态变量
9+
status=0
10+
project="basic"
11+
12+
echo "---------------------------------------"
13+
echo "Running project: $project"
14+
15+
# 检查端口是否被占用
16+
if lsof -Pi :8888 -sTCP:LISTEN -t >/dev/null ; then
17+
kill -9 $(lsof -t -i:8888)
18+
fi
19+
20+
# 启动 server
21+
22+
cd "$REPO_PATH/server" || exit
23+
go run main.go > /dev/null 2>&1 &
24+
server_pid=$!
25+
cd - > /dev/null || exit
26+
27+
28+
# 等待 server 启动
29+
sleep 1
30+
31+
# 启动 client
32+
33+
cd "$REPO_PATH/client" || exit
34+
go run main.go > /dev/null 2>&1 &
35+
cd - > /dev/null || exit
36+
37+
38+
# 等待 client 启动
39+
sleep 1
40+
41+
# 检查 server 是否仍在运行
42+
if kill -0 $server_pid ; then
43+
echo "Project run successfully: $project"
44+
echo "---------------------------------------"
45+
else
46+
echo "Project failed to run: $project"
47+
echo "---------------------------------------"
48+
status=1
49+
fi
50+
51+
# 杀死 server
52+
kill $server_pid
53+
54+
55+
# 设置脚本的退出状态
56+
exit $status

0 commit comments

Comments
 (0)