fix(ci): 用 /proc/net/route 取 host bridge IP,不依賴 ip 指令
Some checks failed
CD Pipeline / build-and-deploy (push) Failing after 2m7s

ip 指令在精簡 runner 環境不存在,改用 /proc/net/route awk 解析
fallback 到 172.17.0.1 (docker0 慣例)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-10 13:07:07 +08:00
parent e65d931e73
commit bcbc51edc8

View File

@@ -135,8 +135,12 @@ jobs:
psql -U awoooi -d awoooi_test \
< tests/integration/setup_test_schema.sql
# DinD: runner 連 sibling container 需走 host bridge → port 15432
# docker0 bridge IP 通常是 172.17.0.1,但用 route 確保準確
HOST_IP=$(ip route | awk '/default/{print $3}' | head -1)
# ip 指令在精簡 runner 環境可能不存在,改用 /proc/net/route
HOST_IP=$(awk '$2=="00000000"{printf "%d.%d.%d.%d\n",
"0x"substr($3,7,2)+0,"0x"substr($3,5,2)+0,
"0x"substr($3,3,2)+0,"0x"substr($3,1,2)+0}' /proc/net/route | head -1)
# fallback: docker0 bridge 慣例 IP
[ -z "$HOST_IP" ] && HOST_IP="172.17.0.1"
echo "host bridge IP: $HOST_IP"
TEST_DATABASE_URL="postgresql+asyncpg://awoooi:awoooi_test_2026@${HOST_IP}:15432/awoooi_test?ssl=disable" \
/opt/api-venv/bin/pytest tests/integration/test_b5_core_flows.py -v --tb=short