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