From cde61b06ae86ddd8d052e1dbf9f4a1eb0b5cc32c Mon Sep 17 00:00:00 2001 From: OG T Date: Thu, 2 Apr 2026 23:16:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(ci):=20CD=20=E6=94=B9=E6=90=B6=E4=BD=94?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=20=E2=80=94=20cancel-in-progress:=20true?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 問題: 多個 commit 快速推版時排隊堆積;docker build 卡住阻塞整條 queue 根因: cancel-in-progress:false 讓每個 commit 都排隊等,新的無法取消舊的 修復: cancel-in-progress:true — 新 push 立即取消舊 build,只部署最新 commit 安全: concurrency group 保證同時只有一個 job 跑,kubectl rollout status 防半部署 Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/cd.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/cd.yaml b/.gitea/workflows/cd.yaml index 46e232e4..08345c77 100644 --- a/.gitea/workflows/cd.yaml +++ b/.gitea/workflows/cd.yaml @@ -21,10 +21,13 @@ on: workflow_dispatch: # 手動觸發永遠可用(用於補跑、緊急部署) -# 2026-03-30 ogt: 佇列模式 - 等待前一個 run 完成,不取消 +# 2026-04-02 Claude Code: 改為搶佔模式 — 新 push 立即取消舊 build,只部署最新 +# 原理: concurrency group 保證同時只有一個 job 跑;cancel-in-progress:true 讓新的取代舊的 +# 解決: 多個 commit 快速連推時不再排隊堆積,且 docker build 卡住時不會阻塞後續部署 +# 安全: deploy 步驟本身有 kubectl rollout status 保護,不會出現半部署狀態 concurrency: group: cd-deploy-${{ github.ref }} - cancel-in-progress: false + cancel-in-progress: true env: HARBOR: 192.168.0.110:5000