From 6f0b5a1685c864e131db03bab406b307f4cfd04a Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 9 Aug 2026 17:03:24 +0000 Subject: [PATCH] =?UTF-8?q?ci:=20dev=20=E3=83=87=E3=83=97=E3=83=AD?= =?UTF-8?q?=E3=82=A4=E3=82=92=E7=9B=B4=E5=88=97=E5=8C=96=E3=81=97=E3=81=A6?= =?UTF-8?q?=20CloudFormation=20=E3=81=AE=E7=AB=B6=E5=90=88=E3=82=92?= =?UTF-8?q?=E9=98=B2=E3=81=90=EF=BC=88#112=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 全 PR が同じ dev ステージへデプロイするため、複数 PR がほぼ同時に更新される とスタックが UPDATE_IN_PROGRESS のままになり、先着以外が deploy 段階だけで 失敗していた。差分の内容とは無関係に落ちるため都度の手動再実行が必要だった。 serverless-dev に concurrency group を設定してリポジトリ全体で 1 本ずつに 直列化する。ref を含めない固定 group にすることで PR 間の競合を無くし、 実行中のデプロイを中途半端に打ち切らないよう cancel-in-progress は false に する。 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01MoGxJDiZa8c2E3PVAnxbK8 --- .github/workflows/serverless-dev.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/serverless-dev.yml b/.github/workflows/serverless-dev.yml index 92eda54..19ae8f6 100644 --- a/.github/workflows/serverless-dev.yml +++ b/.github/workflows/serverless-dev.yml @@ -2,6 +2,25 @@ name: serverless-dev on: pull_request +# 全 PR が同じ dev ステージ(CloudFormation スタック +# github-notifications-slack-dev)へデプロイするため、複数 PR がほぼ同時に +# 更新されるとスタックが UPDATE_IN_PROGRESS のままで先着以外が落ちる。 +# リポジトリ全体で 1 本ずつに直列化する(issue #112)。 +# +# group に ref を含めないのが要点。PR ごとに分けると「別 PR と同時に走る」 +# という競合の原因そのものが残る。 +# +# cancel-in-progress は false。実行中のデプロイを打ち切るとスタックが +# 中途半端な状態で残りうるため、待たせる方を選ぶ。 +# +# 制約: 同一 group の待機中 run は最新 1 本しか保持されず、3 本目が来ると +# 待機中だったものは GitHub 側でキャンセルされる。その PR は deploy 未検証の +# ままになるので、確認したい場合は再実行する(失敗ではなくキャンセル表示に +# なるので区別はつく)。 +concurrency: + group: serverless-dev + cancel-in-progress: false + jobs: deploy: name: deploy