デプロイの承認
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
保護環境へのデプロイに対して、追加の承認を必須にすることができます。必須の承認がすべて与えられるまで、デプロイはブロックされます。
デプロイの承認を使用して、テスト、セキュリティ、またはコンプライアンスのプロセスに対応します。たとえば、本番環境へのデプロイには承認を必須にする場合があります。
デプロイの承認を設定する
プロジェクトの保護環境へのデプロイに対して承認を必須にすることができます。
前提要件:
- 環境を更新するには、メンテナーロール以上が必要です。
プロジェクトのデプロイの承認を設定するには、次のようにします:
プロジェクトの
.gitlab-ci.ymlファイルにデプロイジョブを作成します:stages: - deploy production: stage: deploy script: - 'echo "Deploying to ${CI_ENVIRONMENT_NAME}"' environment: name: ${CI_JOB_NAME} action: startジョブは手動(
when: manual)である必要はありません。必要な承認ルールを追加します。
これで、プロジェクト内の環境では、デプロイ前に承認を必要とするようになります。
複数の承認ルールを追加する
複数の承認ルールを追加して、デプロイジョブを承認および実行できるユーザーを制御します。
複数の承認ルールを設定するには、CI/CDの設定を使用します。APIを使用することもできます。
環境にデプロイするすべてのジョブはブロックされ、実行前に承認を待ちます。必要な承認の数が、デプロイを許可されたユーザー数よりも少なくなるようにしてください。
ユーザーは、複数の承認者グループのメンバーであっても、1回のデプロイにつき承認できるのは1回のみです。イシュー457541では、この挙動を変更し、同じユーザーが異なる複数の承認者グループから、1回のデプロイに対して複数の承認を与えられるようにすることが提案されています。
デプロイが承認されたら、ジョブを手動で実行する必要があります。
自己承認を許可する
デフォルトでは、デプロイパイプラインをトリガーするユーザーは、そのデプロイジョブを承認することができません。
GitLab管理者は、すべてのデプロイを承認または却下できます。
デプロイジョブの自己承認を許可するには、次のようにします:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにした場合、このフィールドは上部のバーに表示されます。
- 設定 > CI/CDを選択します。
- 保護された環境を展開します。
- 承認のオプションで、Allow pipeline triggerer to approve deployment(パイプラインのトリガー元にデプロイの承認を許可する)チェックボックスをオンにします。
デプロイを承認または却下する
複数の承認ルールがある環境では、次のことができます:
- デプロイを承認して、続行を許可する。
- デプロイを却下して、阻止する。
前提要件:
- 保護環境にデプロイする権限が必要です。
デプロイを承認または却下するには、次のようにします:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにした場合、このフィールドは上部のバーに表示されます。
- 操作 > 環境を選択します。
- 環境名を選択します。
- デプロイを見つけて、そのStatus badge(ステータスバッジ)を選択します。
- (オプション)デプロイの承認または却下の理由を説明するコメントを追加します。
- 承認するまたは拒否を選択します。
APIを使用することもできます。
複数の承認者グループのメンバーであっても、1回のデプロイにつき承認できるのは1回のみです。イシュー457541では、この挙動を変更し、同じユーザーが異なる複数の承認者グループから、1回のデプロイに対して複数の承認を与えられるようにすることが提案されています。
対応するデプロイジョブは、デプロイが承認された後も自動的には実行されません。
デプロイの承認の詳細を表示する
前提要件:
- 保護環境にデプロイする権限が必要です。
保護環境へのデプロイは、必要なすべての承認が与えられた後にのみ続行できます。
デプロイの承認の詳細を表示するには、次のようにします:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにした場合、このフィールドは上部のバーに表示されます。
- 操作 > 環境を選択します。
- 環境名を選択します。
- デプロイを見つけて、そのStatus badge(ステータスバッジ)を選択します。
承認ステータスの詳細が表示されます:
- 適格な承認者
- 承認済みの数と必要な承認の数
- 承認を与えたユーザー
- 承認または却下の履歴
ブロックされたデプロイを表示する
デプロイがブロックされているかどうかなど、デプロイのステータスを確認します。
デプロイを表示するには、次のようにします:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにした場合、このフィールドは上部のバーに表示されます。
- 操作 > 環境を選択します。
- デプロイ先の環境を選択します。
blocked(ブロック済み)ラベルが付いたデプロイはブロックされています。
APIを使用してデプロイを表示することもできます。statusフィールドは、デプロイがブロックされているかどうかを示します。