Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fe5753cbdf |
@@ -0,0 +1,168 @@
|
|||||||
|
name: Temp Expand Runner
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- 'temp/expand-runner'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
expand:
|
||||||
|
runs-on: host
|
||||||
|
steps:
|
||||||
|
- name: Expand to 3 runner instances
|
||||||
|
run: |
|
||||||
|
set +e
|
||||||
|
|
||||||
|
echo "========== 当前runner状态 =========="
|
||||||
|
echo "进程数: $(ps aux | grep 'act_runner daemon' | grep -v grep | wc -l)"
|
||||||
|
ps aux | grep 'act_runner daemon' | grep -v grep
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "========== 创建 runner-2 =========="
|
||||||
|
if [ -f /var/lib/xiaoxia-ci-runner-2/.runner ]; then
|
||||||
|
echo "runner-2 已注册,跳过"
|
||||||
|
else
|
||||||
|
mkdir -p /var/lib/xiaoxia-ci-runner-2
|
||||||
|
cp /var/lib/xiaoxia-ci/act_runner /var/lib/xiaoxia-ci-runner-2/act_runner
|
||||||
|
chmod +x /var/lib/xiaoxia-ci-runner-2/act_runner
|
||||||
|
|
||||||
|
cat > /var/lib/xiaoxia-ci-runner-2/.runner-config.yaml << 'CFG'
|
||||||
|
log:
|
||||||
|
level: info
|
||||||
|
runner:
|
||||||
|
file: .runner
|
||||||
|
capacity: 1
|
||||||
|
timeout: 3h
|
||||||
|
insecure: false
|
||||||
|
fetch_timeout: 5s
|
||||||
|
fetch_interval: 2s
|
||||||
|
labels:
|
||||||
|
- runtime-builder
|
||||||
|
- ubuntu-latest
|
||||||
|
- host
|
||||||
|
cache:
|
||||||
|
enabled: true
|
||||||
|
dir: /var/lib/xiaoxia-ci-runner-2/cache
|
||||||
|
host:
|
||||||
|
workdir_parent: /var/lib/xiaoxia-ci-runner-2/workspace
|
||||||
|
container:
|
||||||
|
network: host
|
||||||
|
CFG
|
||||||
|
|
||||||
|
REG_TOKEN=$(python3 -c "import json; print(json.load(open('/var/lib/xiaoxia-ci/.runner'))['token'])" 2>/dev/null)
|
||||||
|
REG_ADDR=$(python3 -c "import json; print(json.load(open('/var/lib/xiaoxia-ci/.runner'))['address'])" 2>/dev/null)
|
||||||
|
echo "注册地址: $REG_ADDR"
|
||||||
|
|
||||||
|
cd /var/lib/xiaoxia-ci-runner-2
|
||||||
|
./act_runner register \
|
||||||
|
--instance "$REG_ADDR" \
|
||||||
|
--token "$REG_TOKEN" \
|
||||||
|
--name "xiaoxia-ci-runner-2" \
|
||||||
|
--labels "runtime-builder:host,ubuntu-latest:host,host:host" \
|
||||||
|
--no-interactive 2>&1
|
||||||
|
echo "注册结果: $?"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "========== 创建 runner-3 =========="
|
||||||
|
if [ -f /var/lib/xiaoxia-ci-runner-3/.runner ]; then
|
||||||
|
echo "runner-3 已注册,跳过"
|
||||||
|
else
|
||||||
|
mkdir -p /var/lib/xiaoxia-ci-runner-3
|
||||||
|
cp /var/lib/xiaoxia-ci/act_runner /var/lib/xiaoxia-ci-runner-3/act_runner
|
||||||
|
chmod +x /var/lib/xiaoxia-ci-runner-3/act_runner
|
||||||
|
|
||||||
|
cat > /var/lib/xiaoxia-ci-runner-3/.runner-config.yaml << 'CFG'
|
||||||
|
log:
|
||||||
|
level: info
|
||||||
|
runner:
|
||||||
|
file: .runner
|
||||||
|
capacity: 1
|
||||||
|
timeout: 3h
|
||||||
|
insecure: false
|
||||||
|
fetch_timeout: 5s
|
||||||
|
fetch_interval: 2s
|
||||||
|
labels:
|
||||||
|
- runtime-builder
|
||||||
|
- ubuntu-latest
|
||||||
|
- host
|
||||||
|
cache:
|
||||||
|
enabled: true
|
||||||
|
dir: /var/lib/xiaoxia-ci-runner-3/cache
|
||||||
|
host:
|
||||||
|
workdir_parent: /var/lib/xiaoxia-ci-runner-3/workspace
|
||||||
|
container:
|
||||||
|
network: host
|
||||||
|
CFG
|
||||||
|
|
||||||
|
REG_TOKEN=$(python3 -c "import json; print(json.load(open('/var/lib/xiaoxia-ci/.runner'))['token'])" 2>/dev/null)
|
||||||
|
REG_ADDR=$(python3 -c "import json; print(json.load(open('/var/lib/xiaoxia-ci/.runner'))['address'])" 2>/dev/null)
|
||||||
|
|
||||||
|
cd /var/lib/xiaoxia-ci-runner-3
|
||||||
|
./act_runner register \
|
||||||
|
--instance "$REG_ADDR" \
|
||||||
|
--token "$REG_TOKEN" \
|
||||||
|
--name "xiaoxia-ci-runner-3" \
|
||||||
|
--labels "runtime-builder:host,ubuntu-latest:host,host:host" \
|
||||||
|
--no-interactive 2>&1
|
||||||
|
echo "注册结果: $?"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "========== 配置 systemd =========="
|
||||||
|
cat > /etc/systemd/system/act_runner-2.service << 'SVC'
|
||||||
|
[Unit]
|
||||||
|
Description=Gitea Actions Runner 2
|
||||||
|
After=gitea.service network.target
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=/var/lib/xiaoxia-ci-runner-2
|
||||||
|
ExecStart=/var/lib/xiaoxia-ci-runner-2/act_runner daemon --config .runner-config.yaml
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5s
|
||||||
|
User=root
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
SVC
|
||||||
|
|
||||||
|
cat > /etc/systemd/system/act_runner-3.service << 'SVC'
|
||||||
|
[Unit]
|
||||||
|
Description=Gitea Actions Runner 3
|
||||||
|
After=gitea.service network.target
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=/var/lib/xiaoxia-ci-runner-3
|
||||||
|
ExecStart=/var/lib/xiaoxia-ci-runner-3/act_runner daemon --config .runner-config.yaml
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5s
|
||||||
|
User=root
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
SVC
|
||||||
|
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable act_runner-2.service act_runner-3.service 2>&1
|
||||||
|
systemctl start act_runner-2.service 2>&1
|
||||||
|
systemctl start act_runner-3.service 2>&1
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "========== 验证结果 =========="
|
||||||
|
echo "总进程数: $(ps aux | grep 'act_runner daemon' | grep -v grep | wc -l)"
|
||||||
|
ps aux | grep 'act_runner daemon' | grep -v grep
|
||||||
|
echo ""
|
||||||
|
echo "服务状态:"
|
||||||
|
systemctl is-active act_runner.service act_runner-2.service act_runner-3.service 2>&1
|
||||||
|
echo ""
|
||||||
|
echo "各runner注册信息:"
|
||||||
|
for d in /var/lib/xiaoxia-ci /var/lib/xiaoxia-ci-runner-2 /var/lib/xiaoxia-ci-runner-3; do
|
||||||
|
if [ -f "$d/.runner" ]; then
|
||||||
|
python3 -c "
|
||||||
|
import json
|
||||||
|
d = json.load(open('$d/.runner'))
|
||||||
|
print(f' {d[\"name\"]}: id={d[\"id\"]}')
|
||||||
|
" 2>/dev/null
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo ""
|
||||||
|
echo "========== 扩容完成 =========="
|
||||||
Reference in New Issue
Block a user