fix(cd): run smoke from isolated workspace
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 35s
CD Pipeline / build-and-deploy (push) Successful in 3m48s
CD Pipeline / post-deploy-checks (push) Successful in 1m38s

This commit is contained in:
Your Name
2026-07-01 17:27:11 +08:00
parent 0b3d5016ce
commit 306fa471f8
3 changed files with 56 additions and 18 deletions

View File

@@ -1,3 +1,15 @@
## 2026-07-01 — 17:29 Gitea CD post-deploy smoke workspace 權限修正
**照主線修正的問題**
- CD `#4272` 已成功完成 tests、image build/push、ArgoCD `Synced/Healthy`、K8s rollout 與 production deploy readback並讀回 `792de2553c` 與 GitOps desired image tag 一致;但 post-deploy browser smoke 仍回 `SMOKE_RESULT=⚠️`
- smoke log 顯示 `pnpm install` 在 bind-mounted checkout 的 `/workspace/node_modules` 建目錄時 `EACCES`,代表 smoke container 不應直接在 runner checkout 安裝依賴。
- `.gitea/workflows/cd.yaml` 改成把 source checkout 唯讀掛到 `/source`,在 container 內建立 `/tmp/awoooi-smoke-workspace` 後用 `tar` 排除 `.git``node_modules``test-results``playwright-report` 再安裝與執行 Playwright`GITHUB_OUTPUT` 改用單檔 bind mount `/github-output` 寫回,不再把整個 checkout 當可寫 workspace。
- `ops/runner/test_cd_controlled_runtime_profile.py` 新增 guard禁止 smoke 回到 `-v "$PWD:/workspace"``-w /workspace``/workspace/.awoooi-smoke-output`,避免下一次權限 / symlink cleanup 問題再讓 smoke 假黃。
**邊界**:未讀 secret / token / `.env` / raw sessions / SQLite / auth未使用 GitHub / `gh` / GitHub API未重啟主機 / Docker / Nginx / K3s / DB / firewall未 force push。
**下一步**:跑本地 workflow guard 後推 Gitea main等待下一個 CD 重新產生 post-deploy smoke `pass` 證據;若 smoke 還是黃,繼續只收斂最新失敗段落。
## 2026-07-01 — 17:18 Gitea CD post-deploy smoke 依賴證據修正
**照主線修正的問題**