test(ci): 第5刀c e2e-smoke CI job + 文档 L4 状态更新
- ci.yml 新增 e2e-smoke job(golang:1.25 + apt openssl/curl/python3);容器内无 docker daemon → 脚本走内嵌 miniredis 兜底,无需 docker-in-docker——CI 走的 正是本机已验证绿的同款路径 - docs/test-architecture.html:L4 从「完全缺·最大缺口」更新为已落地 scripts/e2e-smoke.sh + server/test/e2e/ - 注:本机无 docker,e2e job 未在真 nas runner 实跑;逻辑等同本机已绿的 miniredis 路径,首次 CI 运行需观察 apt 包/go module 下载 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -125,3 +125,21 @@ jobs:
|
||||
-v "$PWD/server:/app" -w /app \
|
||||
golang:1.25 \
|
||||
bash -c "go build ./... && go test ./..."
|
||||
|
||||
# ── Job 8: E2E Smoke (L4 进程级端到端,含 gRPC 全链路)───────────────────
|
||||
# 真起打包的 server 二进制(sqlite 临时库 + 内嵌 miniredis,无需 docker-in-docker)
|
||||
# → enroll(mTLS)→ ReportUsage 注入用量 → /v1/usage 断言统计真入库真读出。
|
||||
# 详见 scripts/e2e-smoke.sh + server/test/e2e/。
|
||||
e2e-smoke:
|
||||
name: E2E Smoke — L4 进程级端到端
|
||||
runs-on: nas
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: 进程级端到端冒烟 (server 二进制 + miniredis + gRPC 全链路)
|
||||
run: |
|
||||
docker run --rm \
|
||||
-v "$PWD:/repo" -w /repo \
|
||||
golang:1.25 \
|
||||
bash -c "apt-get update -qq && apt-get install -y -qq openssl curl python3 >/dev/null 2>&1 && bash scripts/e2e-smoke.sh"
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
<li><b>测什么</b>:起真控制面 + agent + sing-box + DB,发真流量,断言按租户/按设备 bytes 入库、限流触发、实时数值 >0。</li>
|
||||
<li><b>工具</b>:docker-compose + 探针驱动脚本(见图 5)。</li>
|
||||
<li><b>量化</b>:实测 vs 期望容差、限流是否触发、连上耗时、时延 ms。</li>
|
||||
<li><b>现状</b>:<span class="tag t-bad">完全缺——最大缺口</span>。<code>local_test.sh</code> 只构建启动、<code>deploy.sh</code> 只部署,均无连通性自检。</li>
|
||||
<li><b>现状</b>:<span class="tag t-ok">已落地</span> <code>scripts/e2e-smoke.sh</code> + <code>server/test/e2e/</code>——进程级:真 server 二进制 + sqlite + 内嵌 miniredis + gRPC enroll/ReportUsage → <code>/v1/usage</code> 断言统计真入库真读出(CI job <code>e2e-smoke</code>)。真 sing-box 出网流量留后续。</li>
|
||||
<li><b>边界(建议)</b>:先做 <b>(a) 后端全链路</b>(可全自动、进一台 Linux runner);<b>(b) desktop 真连</b>(需常驻 Mac)与 <b>(c) iOS/Android 真机</b> 作本地按需后续。</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user