Skip to content

Commit

Permalink
[WIP]chore: optimize CI (#122)
Browse files Browse the repository at this point in the history
  • Loading branch information
ViolaPioggia committed May 2, 2024
1 parent 23648ce commit 3571aa1
Show file tree
Hide file tree
Showing 117 changed files with 4,136 additions and 82 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ jobs:
- name: Benchmark
run: go test -bench=. -benchmem -run=none ./...


11 changes: 11 additions & 0 deletions .github/workflows/push-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,14 @@ jobs:
- name: Unit Test
run: go test -v -race -covermode=atomic -coverprofile=coverage.out ./...

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Run test.sh
run: |
find . -name test.sh -print0 | while IFS= read -r -d '' script; do
script_dir=$(dirname "$script")
chmod +x "$script"
(cd "$script_dir" && bash "./$(basename "$script")")
done
29 changes: 29 additions & 0 deletions async_call/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

# 设置工作目录为项目目录
cd ./

REPO_PATH="."

project="async_call"

echo "---------------------------------------"
echo "Running project: $project"

# 启动 server
cd "$REPO_PATH/server" || exit
go run main.go > /dev/null 2>&1 &
server_pid=$!
cd - > /dev/null || exit

# 启动 client
cd "$REPO_PATH/client" || exit
go run main.go > /dev/null 2>&1 &
client_pid=$!
cd - > /dev/null || exit

# 当脚本退出时,停止 server
trap 'kill $server_pid' EXIT

# 等待 server 和 client 结束
wait $server_pid $client_pid
57 changes: 57 additions & 0 deletions async_call/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/bin/bash

# 设置工作目录为项目目录
cd ./

REPO_PATH="."

# 初始化状态变量
status=0
project="async_call"

echo "---------------------------------------"
echo "Running project: $project"

# 检查端口是否被占用
if lsof -Pi :8888 -sTCP:LISTEN -t >/dev/null ; then
kill -9 $(lsof -t -i:8888)
fi

# 启动 server

cd "$REPO_PATH/server" || exit
go run main.go > /dev/null 2>&1 &
server_pid=$!
cd - > /dev/null || exit


# 等待 server 启动
sleep 1

# 启动 client

cd "$REPO_PATH/client" || exit
go run main.go > /dev/null 2>&1 &
client_pid=$!
cd - > /dev/null || exit


# 等待 client 启动
sleep 1

# 检查 server 和 client 是否仍在运行
if kill -0 $server_pid && kill -0 $client_pid; then
echo "Project run successfully: $project"
echo "---------------------------------------"
else
echo "Project failed to run: $project"
echo "---------------------------------------"
status=1
fi

# 杀死 server 和 client
kill $server_pid $client_pid


# 设置脚本的退出状态
exit $status
65 changes: 65 additions & 0 deletions basic/example_shop/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/bin/bash

# 设置工作目录为项目目录
cd ./

REPO_PATH="."

# 初始化状态变量
status=0
project="basic"

echo "---------------------------------------"
echo "Running project: $project"

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

# 启动 item server

cd "$REPO_PATH/rpc/item" || exit
go run main.go > /dev/null 2>&1 &
item_server_pid=$!
cd - > /dev/null || exit


# 等待 item server 启动
sleep 1

# 启动 stock server

cd "$REPO_PATH/rpc/stock" || exit
go run main.go > /dev/null 2>&1 &
stock_server_pid=$!
cd - > /dev/null || exit


# 等待 stock server 启动
sleep 1

# 启动 client

cd "$REPO_PATH/api" || exit
go run main.go > /dev/null 2>&1 &
client_pid=$!
cd - > /dev/null || exit


# 等待 client 启动
sleep 1

# 检查 server 和 client 是否仍在运行
if kill -0 $item_server_pid && kill -0 $stock_server_pid && kill -0 $client_pid ; then
echo "Project run successfully: $project"
echo "---------------------------------------"
else
echo "Project failed to run: $project"
echo "---------------------------------------"
status=1
fi

# 杀死 server 和 client
kill $item_server_pid $stock_server_pid $client_pid


# 设置脚本的退出状态
exit $status
72 changes: 72 additions & 0 deletions basic/example_shop/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/bin/bash

# 设置工作目录为项目目录
cd ./

REPO_PATH="."

# 初始化状态变量
status=0
project="example_shop"

echo "---------------------------------------"
echo "Running project: $project"

# 检查端口是否被占用
if lsof -Pi :8888 -sTCP:LISTEN -t >/dev/null ; then
kill -9 $(lsof -t -i:8888)
fi

cd "$REPO_PATH" || exit
docker-compose up -d
cd - > /dev/null || exit

# 启动 item server

cd "$REPO_PATH//rpc/item" || exit
go run main.go > /dev/null 2>&1 &
item_server_pid=$!
cd - > /dev/null || exit


# 等待 server 启动
sleep 1

# 启动 stock server

cd "$REPO_PATH/rpc/stock" || exit
go run main.go > /dev/null 2>&1 &
stock_server_pid=$!
cd - > /dev/null || exit


# 等待 server 启动
sleep 1

# 启动 client

cd "$REPO_PATH/api" || exit
go run main.go > /dev/null 2>&1 &
client_pid=$!
cd - > /dev/null || exit


# 等待 client 启动
sleep 1

# 检查 server 和 client 是否仍在运行
if kill -0 $item_server_pid && kill -0 $stock_server_pid && kill -0 $client_pid; then
echo "Project run successfully: $project"
echo "---------------------------------------"
else
echo "Project failed to run: $project"
echo "---------------------------------------"
status=1
fi

# 杀死 server 和 client
kill $stock_server_pid $item_server_pid $client_pid


# 设置脚本的退出状态
exit $status
29 changes: 29 additions & 0 deletions basic/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

# 设置工作目录为项目目录
cd ./

REPO_PATH="."

project="basic"

echo "---------------------------------------"
echo "Running project: $project"

# 启动 server
cd "$REPO_PATH/server" || exit
go run main.go > /dev/null 2>&1 &
server_pid=$!
cd - > /dev/null || exit

# 启动 client
cd "$REPO_PATH/client" || exit
go run main.go > /dev/null 2>&1 &
client_pid=$!
cd - > /dev/null || exit

# 当脚本退出时,停止 server
trap 'kill $server_pid' EXIT

# 等待 server 和 client 结束
wait $server_pid $client_pid
56 changes: 56 additions & 0 deletions basic/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/bin/bash

# 设置工作目录为项目目录
cd ./

REPO_PATH="."

# 初始化状态变量
status=0
project="basic"

echo "---------------------------------------"
echo "Running project: $project"

# 检查端口是否被占用
if lsof -Pi :8888 -sTCP:LISTEN -t >/dev/null ; then
kill -9 $(lsof -t -i:8888)
fi

# 启动 server

cd "$REPO_PATH/server" || exit
go run main.go > /dev/null 2>&1 &
server_pid=$!
cd - > /dev/null || exit


# 等待 server 启动
sleep 1

# 启动 client

cd "$REPO_PATH/client" || exit
go run main.go > /dev/null 2>&1 &
cd - > /dev/null || exit


# 等待 client 启动
sleep 1

# 检查 server 是否仍在运行
if kill -0 $server_pid ; then
echo "Project run successfully: $project"
echo "---------------------------------------"
else
echo "Project failed to run: $project"
echo "---------------------------------------"
status=1
fi

# 杀死 server
kill $server_pid


# 设置脚本的退出状态
exit $status

0 comments on commit 3571aa1

Please sign in to comment.