fix: verify code queue deploy commit

This commit is contained in:
Codex
2026-05-16 04:18:25 +00:00
parent 88516cec6a
commit 860b2a76b1
7 changed files with 108 additions and 13 deletions
+4 -3
View File
@@ -23,14 +23,15 @@ bun scripts/cli.ts job status <jobId> --tail-bytes 30000
3.`/home/ubuntu/cq-deploy` 构建 `unidesk-code-queue:d601`
4. `docker save` 镜像并导入 k3s containerd`docker exec -i unidesk-v8s-server ctr -n k8s.io images import -`
5. `kubectl apply -f src/components/microservices/v3sctl-adapter/v3s/code-queue.k8s.yaml`,其中包含 Code Queue 和 `d601-tcp-egress-gateway`
6. `kubectl -n unidesk rollout restart deployment/d601-tcp-egress-gateway deployment/code-queue` 并等待 rollout 完成
7. 通过 `bun scripts/cli.ts microservice health code-queue` 等价的 backend-core 路径验证 live health
6. 将解析后的 40 位 remote commit 写入 `deployment/code-queue``CODE_QUEUE_DEPLOY_COMMIT` / `CODE_QUEUE_DEPLOY_REQUESTED_COMMIT`,并记录到 Deployment annotation
7. `kubectl -n unidesk rollout restart deployment/d601-tcp-egress-gateway deployment/code-queue` 并等待 rollout 完成
8. 通过 backend-core 的真实微服务代理读取 Code Queue `/health`,强制校验 `deploy.commit` 等于本次解析出的 remote commit;如果健康的是旧服务或旧 Pod,job 必须失败。
## Observability
`codex deploy` 本身不阻塞等待部署结束。返回 JSON 中的 `statusCommand``tailCommand` 是唯一状态入口。后台 job 的 stderr 是 JSONL progress,每个长步骤会记录远端 `/tmp/unidesk-codex-deploy-*.log` 和 sentinel 文件;失败时 `job status` 会显示最后日志尾部。
`job status``succeeded` 后,还要用以下命令做 live 验证
`job status``succeeded` 时,部署 job 已经完成 live commit 验证。需要人工复核时可用以下命令确认 `deploy.commit`
```bash
bun scripts/cli.ts microservice health code-queue