@@ -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'
4249brokerClusterName=DefaultCluster
@@ -54,17 +61,39 @@ diskMaxUsedSpaceRatio=100
5461diskSpaceWarningLevelRatio=100
5562CONF
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 : |
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