Skip to main content

デプロイと環境

デプロイ保護規則、環境シークレット、環境変数について説明します。

デプロイ保護規則

デプロイ保護規則は、その環境を参照するジョブを先に進める前に、特定の条件を満たすことを要求するものです。 デプロイ保護規則を使って、手動による承認を要求したり、ジョブを遅延させたり、環境を特定のブランチに制限したりできます。 また、GitHub Apps を利用するカスタム保護規則を作成して実装し、サード パーティのシステムを使って、GitHub で構成された環境を参照するデプロイを制御できます。

サードパーティ システムは、監視システム、変更管理システム、コード品質システム、デプロイを安全に環境にロールアウトする前に準備状況を評価するために使うその他の手動構成などです。

メモ

任意の数の GitHub Apps ベースの配置保護ルールをリポジトリにインストールできます。 ただし、どの環境でも、同時に有効にできるデプロイ保護規則は最大 6 つです。

必須のレビュー担当者

必須のレビュー担当者を使って、特定の人もしくはTeamがその環境を参照するワークフローのジョブを承認しなければならないようにすることができます。 最大で6人のユーザもしくはTeamをレビュー担当者とすることができます。 レビュー担当者は、少なくともそのリポジトリの読み取りアクセス権を持っていなければなりません。 ジョブが進行するため承認が必要なレビュー担当者は1人だけです。

保護された環境への配置の自己レビューを禁止するオプションもあります。 この設定を有効にした場合、展開を開始するユーザーは、必須のレビュー担当者であっても、展開ジョブを承認できなくなります。 これにより、保護された環境への配置が常に複数のユーザーによってレビューされるようになります。

レビュー担当者を必要とする環境を参照するジョブの確認方法の詳細については、「デプロイメントのレビュー」を参照してください。

メモ

GitHub Free、GitHub Pro、または GitHub Team プランを利用している場合、必須のレビュー担当者はパブリック リポジトリでのみ利用できます。

待機タイマー

ジョブが最初にトリガーされた後、特定の時間ジョブを遅延させるために、待機タイマーを使ってください。 時間 (分) は、1 から 43,200 (30 日) の間の整数でなければなりません。 待機時間は課金対象時間にはカウントされません。

メモ

GitHub Free、GitHub Pro、または GitHub Team プランを利用している場合、待機タイマーはパブリック リポジトリでのみ使用できます。

配置ブランチとタグ

配置ブランチとタグを使って、環境に配置できるブランチとタグを制限します。 環境の配置ブランチとタグのオプションは次のとおりです。

  • 制限なし: 環境にデプロイできるブランチまたはタグに制限はありません。

  • Protected branches only: 環境に配置できるのは、ブランチ保護規則が有効なブランチのみです。 リポジトリ内のどのブランチにもブランチ保護ルールが定義されていない場合は、すべてのブランチをデプロイできます。 ブランチ保護ルールについて詳しくは、「保護されたブランチについて」をご覧ください。

    メモ

    デプロイ ワークフローは、保護されたブランチと同じ名前のタグによってトリガーされ、保護されたブランチ名と一致するブランチを持つフォークは環境に配置できません。

  • Selected branches and tags: 環境に配置できるのは、指定した名前パターンに一致するブランチとタグのみです。

    配置ブランチまたはタグ規則として releases/* を指定した場合、名前が releases/ で始まるブランチまたはタグのみを環境に配置できます。 (ワイルドカード文字は / と一致しません。 release/ で始まり、追加の 1 つのスラッシュを含むブランチまたはタグと一致させるには、release/*/* を使います。)ブランチ規則として main を追加すると、main というブランチも環境に配置できます。 デプロイ ブランチの構文オプションの詳細については、「Ruby File.fnmatch のドキュメント」を参照してください。

    メモ

    名前パターンは、ブランチまたはタグに対して個別に構成する必要があります。

メモ

配置ブランチとタグは、すべてのパブリック リポジトリで使用できます。 GitHub Pro または GitHub Team プランのユーザーの場合、プライベート リポジトリにも配置ブランチとタグを使用できます。

構成された保護規則を管理者がバイパスすることを許可する

既定では、管理者は保護規則をバイパスし、特定の環境へのデプロイを強制できます。 詳しくは、「デプロイメントのレビュー」をご覧ください。

また、環境へのすべてのデプロイに対して保護規則のバイパスを禁止するように環境を構成することもできます。

メモ

保護ルールのバイパスを管理者に許可できるのは、GitHub Free、GitHub Pro、GitHub Team プランのユーザーのパブリック リポジトリのみです。

カスタム デプロイ保護規則

メモ

カスタム配置保護ルールは、現在 パブリック プレビュー 段階であり、変更される可能性があります。

独自のカスタム保護規則を有効にして、サードパーティ サービスを使ったデプロイを制御できます。 たとえば、Datadog、Honeycomb、ServiceNow などのサービスを使用し、GitHub への展開に対して自動承認を提供できます。詳細については、「カスタム デプロイ保護規則の作成」を参照してください。

カスタム デプロイ保護規則を作成してリポジトリにインストールすると、リポジトリ内の任意の環境に対してカスタム デプロイ保護規則を有効にすることができます。 カスタム配置保護規則の構成と有効化の詳細については、「カスタム デプロイ保護規則の構成」を参照してください。

メモ

カスタムのデプロイ保護ルールを使用できるのは、GitHub Free、GitHub Pro、GitHub Team プランのユーザーのパブリック リポジトリのみです。

環境シークレット

環境に保存されたシークレットは、その環境を参照するワークフロージョブからのみ利用できます。 環境が承認を必要とするなら、ジョブは必須のレビュー担当者の一人が承認するまで環境のシークレットにアクセスできません。 シークレットの詳細については、「シークレット」を参照してください。

メモ

  • セルフホスト ランナーで実行されるワークフローは、環境を使っている場合でも、分離されたコンテナーでは実行されません。 環境シークレットは、リポジトリおよび Organization シークレットと同じレベルのセキュリティで処理する必要があります。 詳しくは、「セキュリティで保護された使用に関するリファレンス」をご覧ください。
  • GitHub Free を使っている場合、環境シークレットはパブリック リポジトリでのみ使用できます。 プライベート リポジトリまたは内部リポジトリで環境シークレットを利用するには、GitHub Pro、GitHub Team、または GitHub Enterprise を使う必要があります。 プランの切り替えの詳細については、「アカウントのプランをアップグレードする」を参照してください。

環境変数

環境に保存された変数は、その環境を参照するワークフロー ジョブからのみ利用できます。 これらの変数には、vars コンテキストを使用してのみアクセスできます。 詳しくは、「変数に情報を格納する」をご覧ください。

メモ

環境変数はすべてのパブリック リポジトリに使用できます。 GitHub Pro プランまたは GitHub Team プランのユーザーの場合、環境変数はプライベート リポジトリでも使用できます。