From caaf12e41c9fa11a1c873d199be2922feb5e380d Mon Sep 17 00:00:00 2001 From: OG T Date: Sun, 29 Mar 2026 16:42:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(cd):=20P0=20=E4=B8=A6=E7=99=BC=E6=B2=BB?= =?UTF-8?q?=E7=90=86=20-=20force=5Fdeploy=20=E7=8D=A8=E7=AB=8B=20concurren?= =?UTF-8?q?cy=20group?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 首席架構師審查 2026-03-29: - 問題: cancel-in-progress: true 導致 force_deploy 被新 push 取消 - 已發生 5+ 次 force deploy 被取消,25 commits 無法部署 - 解決: force_deploy 使用獨立 group,不會被普通 push 取消 - 普通 push 仍互相取消 (防止 Runner 檔案衝突) Co-Authored-By: Claude Opus 4.5 --- .github/workflows/cd.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml index f9f47b4a..8d74c08c 100644 --- a/.github/workflows/cd.yaml +++ b/.github/workflows/cd.yaml @@ -35,11 +35,16 @@ on: default: false concurrency: - group: cd-${{ github.workflow }}-${{ github.ref }} - # 2026-03-29: 改回取消,因為 Runner _diag/pages 衝突發生在 Set up job 階段 - # 等待模式 (cancel-in-progress: false) 會導致並行 Job 寫入同一診斷檔 - # 取消模式確保同一時間只有一個 workflow 在執行 - cancel-in-progress: true + # ======================================================================= + # 2026-03-29 首席架構師審查: P0 並發治理 + # 問題: cancel-in-progress: true 導致 force_deploy 被新 push 取消 + # 解決: force_deploy 使用獨立 concurrency group,不會被普通 push 取消 + # ======================================================================= + group: ${{ inputs.force_deploy && 'cd-force-deploy' || format('cd-{0}-{1}', github.workflow, github.ref) }} + # force_deploy 使用獨立 group,普通 push 使用原 group + # 普通 push 互相取消 (防止 Runner 衝突) + # force_deploy 不會被普通 push 取消 + cancel-in-progress: ${{ !inputs.force_deploy }} env: REGISTRY: 192.168.0.110:5000