Skip to content

Commit c690ed4

Browse files
committed
优化 GitHub Actions 流程:更新 RocketMQ 下载方式,增强启动脚本的健壮性
1 parent fa9d4e1 commit c690ed4

1 file changed

Lines changed: 41 additions & 13 deletions

File tree

.github/workflows/test.yml

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,20 @@ jobs:
3030
9.x
3131
10.x
3232
33-
- name: Download & Start RocketMQ
33+
- name: Download & Extract RocketMQ
3434
run: |
3535
RMQ_VERSION="5.3.1"
36-
wget -q "https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/${RMQ_VERSION}/rocketmq-all-${RMQ_VERSION}-bin-release.zip" -O /tmp/rocketmq.zip
36+
# 主用 Apache Archive,镜像为备用
37+
curl -fsSL "https://archive.apache.org/dist/rocketmq/${RMQ_VERSION}/rocketmq-all-${RMQ_VERSION}-bin-release.zip" \
38+
-o /tmp/rocketmq.zip || \
39+
curl -fsSL "https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/${RMQ_VERSION}/rocketmq-all-${RMQ_VERSION}-bin-release.zip" \
40+
-o /tmp/rocketmq.zip
3741
unzip -q /tmp/rocketmq.zip -d /tmp/
3842
mv /tmp/rocketmq-all-${RMQ_VERSION}-bin-release /tmp/rocketmq
43+
chmod +x /tmp/rocketmq/bin/*.sh
3944
45+
- name: Start RocketMQ
46+
run: |
4047
# 创建 broker.conf
4148
cat > /tmp/rocketmq/conf/broker_test.conf << 'CONF'
4249
brokerClusterName=DefaultCluster
@@ -54,17 +61,39 @@ diskMaxUsedSpaceRatio=100
5461
diskSpaceWarningLevelRatio=100
5562
CONF
5663

57-
# 启动 NameServer
64+
# 限制 JVM 内存(GitHub Actions 仅 7GB)
65+
export MAX_HEAP_SIZE="256m"
66+
export HEAP_NEWSIZE="128m"
67+
68+
echo "=== 启动 NameServer ==="
5869
nohup /tmp/rocketmq/bin/mqnamesrv > /tmp/namesrv.log 2>&1 &
59-
echo "等待 NameServer 启动..."
60-
timeout 30 sh -c 'while ! grep -q "boot success" /tmp/namesrv.log 2>/dev/null; do sleep 1; done'
61-
echo "NameServer 已启动"
70+
for i in $(seq 1 30); do
71+
if grep -q "boot success" /tmp/namesrv.log 2>/dev/null; then
72+
echo "NameServer 已启动 (PID=$(pgrep -f NamesrvStartup))"
73+
break
74+
fi
75+
sleep 1
76+
done
77+
if ! grep -q "boot success" /tmp/namesrv.log 2>/dev/null; then
78+
echo "=== NameServer 启动失败 ==="
79+
cat /tmp/namesrv.log
80+
exit 1
81+
fi
6282

63-
# 启动 Broker
83+
echo "=== 启动 Broker ==="
6484
nohup /tmp/rocketmq/bin/mqbroker -c /tmp/rocketmq/conf/broker_test.conf -n 127.0.0.1:9876 > /tmp/broker.log 2>&1 &
65-
echo "等待 Broker 启动..."
66-
timeout 40 sh -c 'while ! grep -q "boot success" /tmp/broker.log 2>/dev/null; do sleep 1; done'
67-
echo "Broker 已启动"
85+
for i in $(seq 1 40); do
86+
if grep -q "boot success" /tmp/broker.log 2>/dev/null; then
87+
echo "Broker 已启动 (PID=$(pgrep -f BrokerStartup))"
88+
break
89+
fi
90+
sleep 1
91+
done
92+
if ! grep -q "boot success" /tmp/broker.log 2>/dev/null; then
93+
echo "=== Broker 启动失败 ==="
94+
cat /tmp/broker.log
95+
exit 1
96+
fi
6897

6998
- name: Build
7099
run: |
@@ -79,6 +108,5 @@ CONF
79108
- name: Stop RocketMQ
80109
if: always()
81110
run: |
82-
# 清理 RocketMQ 进程
83-
pkill -f mqbroker 2>/dev/null || true
84-
pkill -f mqnamesrv 2>/dev/null || true
111+
pkill -f BrokerStartup 2>/dev/null || true
112+
pkill -f NamesrvStartup 2>/dev/null || true

0 commit comments

Comments
 (0)