根因確認: - 即使有 needs 依賴,Jobs 仍可能在 "Set up job" 階段並行 - 所有 Jobs 共用同一 Runner,並行寫入 _diag/pages 造成衝突 永久解決方案: - 每個 Job 加上 concurrency.group: runner-awoooi-cd-mutex - cancel-in-progress: false (等待而非取消) - 確保同一時間只有一個 Job 在 Runner 上執行 影響: - CD 會變慢 (Jobs 嚴格序列) - 但保證穩定性 (不再有檔案衝突) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>