ci(observability): gate frontend deploys with QA suite
Some checks failed
CD Pipeline / deploy (push) Has been cancelled

This commit is contained in:
OoO
2026-05-05 23:39:00 +08:00
parent 3db8f5c5b2
commit 4380fa641c
3 changed files with 32 additions and 0 deletions

View File

@@ -87,6 +87,19 @@ jobs:
echo "label=🔨 強制重建 Docker Image" >> $GITHUB_OUTPUT
exit 0
fi
- name: 偵測 AI 觀測台前端 QA 是否需要執行
id: observability_qa
run: |
CHANGED=$(git diff --name-only HEAD~1 HEAD 2>/dev/null || echo "")
echo "$CHANGED"
if echo "$CHANGED" | grep -qE '^(templates/admin/.*|templates/ewoooc_base\.html|templates/components/_ewoooc_shell\.html|static/css/observability-system\.css|web/static/css/observability-system\.css|routes/admin_observability_routes\.py|scripts/(check_observability_|observability_contract|sync_observability_css)|docs/guides/observability_ui_governance\.md|docs/guides/deployment_sop\.md)'; then
echo "needed=true" >> $GITHUB_OUTPUT
echo "🎛️ AI 觀測台 QA: required"
else
echo "needed=false" >> $GITHUB_OUTPUT
echo " AI 觀測台 QA: skipped"
fi
CHANGED=$(git diff --name-only HEAD~1 HEAD 2>/dev/null || echo "")
if echo "$CHANGED" | grep -qE '^(Dockerfile|requirements\.txt|docker-compose\.yml)$'; then
echo "type=rebuild" >> $GITHUB_OUTPUT
@@ -144,6 +157,12 @@ jobs:
run: |
apt-get update -qq && apt-get install -y -qq rsync openssh-client
- name: AI 觀測台 Pre-deploy 靜態 QA
if: steps.observability_qa.outputs.needed == 'true'
run: |
bash ./scripts/quick_review.sh --sync-observability-css
bash ./scripts/quick_review.sh --observability-qa --skip-production
# ── 模式 A僅同步 Python 檔案(最常見,~10s ────────────────────────
- name: 同步 Python 檔案至 188
if: steps.deploy_type.outputs.type == 'sync'
@@ -360,6 +379,11 @@ jobs:
fi
echo "✅ SPA Shadow OK — Flask 真接到請求etag=$ETAG xpt=$XPT clen=$CLEN"
- name: AI 觀測台 Post-deploy Production QA
if: success() && steps.observability_qa.outputs.needed == 'true'
run: |
bash ./scripts/quick_review.sh --observability-smoke --base-url https://mo.wooo.work --timeout 12
# ── 觸發 Post-Deploy Code Review ─────────────────────────────────────
- name: 觸發 AI Code Review
if: success()

View File

@@ -70,6 +70,13 @@ QA 套件會檢查:
- `observability-system.css` 必須線上 HTTP 200且包含核心 token/class。
- `static/css/observability-system.css``web/static/css/observability-system.css` 必須一致。
CD 也會自動判斷觀測台相關變更:
- Deploy 前跑 `./scripts/quick_review.sh --sync-observability-css`
- Deploy 前跑 `./scripts/quick_review.sh --observability-qa --skip-production`
- Deploy 後跑 `./scripts/quick_review.sh --observability-smoke --base-url https://mo.wooo.work --timeout 12`
- 若變更與觀測台無關CD 會跳過這組額外 QA避免拖慢一般後端部署。
## 🔍 維運指令
- **查看日誌**: `docker logs -f momo-pro-system --tail 100`
- **進入資料庫**: `docker exec -it momo-db psql -U momo -d momo_analytics`

View File

@@ -53,6 +53,7 @@ bash scripts/check_observability_suite.sh
- Production smoke 必須看到 `觀測台 CSS: HTTP 200, markers=ok`
- 觀測台頁面清單、URL、`active_page`、內容 marker 不要分散維護,先改 `scripts/observability_contract.py`
- `quick_review.sh --observability-qa` 預設打 production `https://mo.wooo.work`;測 staging/localhost 時要明確帶 `--base-url`
- Gitea CD 會偵測觀測台 template/CSS/route/QA script/guide 變更deploy 前跑 CSS sync + static QAdeploy 後跑 production smoke。
## 已鎖住的回歸