手動承認とは?pipelineを人間のために一時停止する
手動承認とは、通常は本番へのdeployの前に、人間が続行を承認するのを待つ、pipelineにおける意図的な一時停止です。
自動化は強力ですが、一部の判断は人に委ねるべきです。手動承認は、権限を持つレビュアーが承認(または却下)をクリックするまでpipelineを保留するゲートを挿入します。最も一般的なのは本番へのdeployの直前で、変更が本番に反映される前に人間が最終確認をしたい場面です。
承認ゲートの仕組み
pipelineがゲートに到達すると、一時停止して承認者に通知します。誰かが承認するまで、下流では何も実行されません。承認が却下されるかタイムアウトすると、pipelineは停止し、deployは行われません。
承認が適する場所
承認は、リスクの高い移行に最も適します。buildを本番へ昇格させる、全ユーザーへリリースする、インフラの変更を適用する、などです。単体テストの実行のようなリスクの低いステップでは、一時停止はフィードバックを遅らせるだけで、ほとんど価値をもたらしません。
簡単な例
GitHub Actionsでは、必須レビュアーを設定した保護されたenvironmentに紐づくjobは、レビュアーがUIで承認するまでdeploy jobで待機します。GitLabも同様の手動jobと保護されたenvironmentを提供します。
承認と自動化されたゲートの比較
- 手動承認: 人間が判断する。
- quality gate: 自動化されたルール(カバレッジ、スキャン)が判断する。
- 多くのpipelineは両方を使い、自動化されたゲートがふるいにかけ、人間が最終リリースを承認します。
承認を速く保つ
放置された承認はデリバリーを停滞させます。通知を適切な人にルーティングし、妥当なタイムアウトを設定し、本当に人間を必要とする変更に承認を限定することで、ゲートがボトルネックにならずに保護できます。
重要なポイント
- 手動承認は、権限を持つ人が承認するまでpipelineを一時停止します。
- 本番deployやその他のリスクの高いステップの前に最も有用です。
- 手動承認を自動化されたquality gateと組み合わせて、多層的な制御を実現しましょう。
関連ガイド
What Is a Quality Gate Stage? Automated Pass/Fail ChecksA quality gate stage enforces automated criteria (coverage, scans, lint) that a build must pass to proceed. L…
What Is an Environment Promotion? Moving Through Dev to ProdEnvironment promotion is the practice of advancing a release through a chain of environments, like dev to sta…
What Is a Deployment Job? Shipping Code From a PipelineA deployment job is a pipeline job that releases a build to an environment, like staging or production. Learn…