ci(infra): stg デプロイ後に deploy-stg ラベルを自動で外す - #1174
Conversation
自己レビューで見つけた。always() だけだと、ラベルが付いていない PR(= デプロイを 要求していない)でも workflow 自体は起動するので、毎 push で「何もしない」ジョブが 動いてログが増える。ラベルの有無で絞る。 Refs #1173 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
🤖 敵対的レビュー(自己レビュー): Must 1 件(修正済み)/ Question 2 件 / FYI 2 件 観点は正確性・セキュリティ・再利用/簡潔性・ [Must] ラベルが無い PR でも cleanup が毎回走る(修正済み 最新コミット)最初の実装は
実地で確認したことworkflow から run スクリプトを抜き出して、実際の PR に対して実行した。
YAML / 権限: js-yaml でパースし Question(判断が要る)[Question] [Question] FYI[FYI] この PR 自体ではデプロイは走らない。 [FYI] ドキュメント 3 箇所を同時に更新した。 DoD 照合
|
|
🚀 Preview deployed: https://smalruby.jp/smalruby3-editor/topic/autopilot-1173/ |
…lot-1173 ci(infra): stg デプロイ後に deploy-stg ラベルを自動で外す
概要
deploy-stgラベルは「いま stg に載せたい」という 1 回きりの意思表示のつもりで付けるのに、外すまで効き続けるため push のたびに再デプロイされていた。PR #1148 の作業中に 4 回走り、
うち 1 回は docs だけの push だった(
pull_requestのpathsフィルタは PR の変更ファイル全体に対して効くので、その push が infra を触っていなくても再実行される)。
利用者から「外すのを忘れそうで運用が難しい」というフィードバックを受けたので、
外す作業を人間から取り上げる。
Closes #1173
変更
run の完了時に workflow 自身が
deploy-stgを外す(cleanup-labelジョブを追加)。設計上の判断:
needs: [select, deploy])if: always())pull-requests: writeのみGITHUB_TOKENで足りるあわせて PR コメントに「もう一度載せたいときはラベルを付け直してください」を追記し、
docs/infra-deploy/README.md/.claude/rules/infra/development.md/.claude/rules/autopilot/prompts.mdの記述を新しい挙動に合わせた(worker 向けには「外す処理を自分で書かない」も明記)。
採らなかった案
synchronizeをトリガーから外す/deploy-stgコメントコマンド検証
YAML 構造: js-yaml でパースし、
cleanup-labelのneeds/if/permissionsを確認。run スクリプトに
${{ }}の展開が無いこと(injection 対策)も確認済み。ラベル除去ロジック: workflow から run スクリプトを抜き出して実際に実行した。
deploy-stg は付いていない(何もしない)→ 成功終了この PR は
infra/**を触らないので、ラベルを付けてもデプロイは走らない(pathsフィルタ)。実挙動の最終確認は、次に infra を触る PR で行う。