Skip to content

Commit 60bc32d

Browse files
authored
Merge pull request #28 from IceFireDB/feat_support_benchmark
feat(benchmark):support benchmark
2 parents d43bee7 + 35bc257 commit 60bc32d

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

.github/workflows/benchmark.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Benchmark Tests
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
push:
7+
branches:
8+
- main
9+
10+
jobs:
11+
benchmark:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Set up Go
17+
uses: actions/setup-go@v4
18+
with:
19+
go-version: '1.21'
20+
21+
- name: Install dependencies
22+
run: |
23+
sudo apt-get update
24+
sudo apt-get install -y redis-tools netcat-openbsd
25+
26+
- name: Run benchmark
27+
run: |
28+
# Start server in background
29+
cd example/memory_kv
30+
# Start server with logging
31+
go run server.go > server.log 2>&1 &
32+
SERVER_PID=$!
33+
34+
# Wait for server to be ready (longer timeout for CI environment)
35+
for i in {1..30}; do
36+
if nc -z 127.0.0.1 6380; then
37+
echo "Server is ready"
38+
break
39+
fi
40+
sleep 2
41+
echo "Waiting for server to start... ($i/30)"
42+
done
43+
44+
# Verify server is ready
45+
if ! nc -z 127.0.0.1 6380; then
46+
echo "Server failed to start after 60 seconds"
47+
echo "Server logs:"
48+
cat server.log || true
49+
exit 1
50+
fi
51+
52+
# Run benchmark tests
53+
echo "Running benchmark tests..."
54+
redis-benchmark -h 127.0.0.1 -p 6380 -n 5000000 -t set,get -c 512 -P 1024 -q
55+
56+
# Stop server
57+
kill $SERVER_PID
58+
59+
# Output results
60+
echo "Benchmark completed"

0 commit comments

Comments
 (0)