From fc6c01ee13dea0961b356c82b8c1ae2e12d13e5c Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 18 Jun 2026 15:45:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(cd):=20=E4=BF=AE=E6=AD=A3=20Docker=20build?= =?UTF-8?q?=20lock=20=E8=87=AA=E6=B8=85=E5=88=A4=E6=96=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/cd.yaml | 12 +++++++++--- .../ai_agent_report_no_write_analysis_runtime.py | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/cd.yaml b/.gitea/workflows/cd.yaml index 1b35cb248..91d401c2e 100644 --- a/.gitea/workflows/cd.yaml +++ b/.gitea/workflows/cd.yaml @@ -400,9 +400,15 @@ jobs: # the Docker-network lock behind with no active build or push. # Waiting the full 30m CD timeout keeps deploys queued even # though no job is protected, so clear empty locks after 5m. - # 2026-05-12 Codex: 用 bracket pattern 避免 lock-check shell 自己的 - # grep/awk pattern 被誤判成 active docker work,導致 empty lock 永不自清。 - ACTIVE_DOCKER_WORK=$(ps -eo pid,args | awk '$0 ~ /[d]ocker (build|push)|[b]uildx build/ {print}' || true) + # 2026-06-18 Codex: 只靠 bracket pattern 仍會命中 lock-check + # bash/awk 自己的指令列;必須排除檢查器本身,取消後留下的 + # empty lock network 才能在 5 分鐘後自清。 + ACTIVE_DOCKER_WORK=$(ps -eo pid,args | awk ' + $0 ~ /[d]ocker (build|push)|[b]uildx build/ && + $0 !~ /ACTIVE_DOCKER_WORK/ && + $0 !~ /awk/ && + $0 !~ /ps -eo pid,args/ {print} + ' || true) if [ "$CREATED_EPOCH" -gt 0 ] && \ [ "$LOCK_AGE" -gt "$EMPTY_LOCK_SECONDS" ] && \ [ -z "$ACTIVE_DOCKER_WORK" ]; then diff --git a/apps/api/src/services/ai_agent_report_no_write_analysis_runtime.py b/apps/api/src/services/ai_agent_report_no_write_analysis_runtime.py index dc5e06873..93ffd73f7 100644 --- a/apps/api/src/services/ai_agent_report_no_write_analysis_runtime.py +++ b/apps/api/src/services/ai_agent_report_no_write_analysis_runtime.py @@ -24,7 +24,7 @@ _EXPECTED_CURRENT_TASK = "P2-407" _EXPECTED_NEXT_TASK = "P2-408" _EXPECTED_CANONICAL_ROOM = "AwoooI SRE 戰情室" _EXPECTED_CANONICAL_ROOM_ENV = "SRE_GROUP_CHAT_ID" -# 2026-06-18 Codex: 部署錨點;不改變 P2-407 no-write snapshot 行為。 +# 2026-06-18 Codex: 部署錨點;不改變 P2-407 no-write snapshot 或 CD lock 行為。 _EXPECTED_SOURCE_SCHEMAS = { "ai_agent_report_status_board_v1", "ai_agent_report_automation_review_v1",