Skip to content
Latchkey

GitHub Actions の environment とは?

environment は独自の secret と保護ルールを持つ名前付きの deploy 先で、production の前に承認を要求するといったことができます。

deploy にはガードレールが必要です。environment を使うと、staging や production のような deploy 先を定義し、それぞれにスコープされた secret を付け、レビュアーや待機タイマーの背後にジョブをゲートできます。

それは何か

environment はリポジトリ設定内の名前付きオブジェクトです。ジョブは environment: を宣言してそれを対象とし、その environment の secret と保護ルールを取り込みます。

Targeting an environment
jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - run: ./deploy.sh

どう動くか

ジョブが保護された environment を対象とすると、GitHub は保護ルールが通るまでジョブを一時停止します。たとえば必須レビュアーが承認する、あるいは待機タイマーが経過するなどです。その後 environment secret がジョブに公開されます。

保護ルール

  • 必須レビュアーがジョブ実行前に承認する必要があります。
  • 待機タイマーは deploy を設定した期間だけ遅らせます。
  • branch 制限はどの ref が deploy できるかを制限します。

なぜ重要か

environment は deploy を監査可能で制御されたイベントに変えます。production の認証情報を分離して保ち、リスクの高いリリースの前に人またはポリシーのゲートを置きます。

関連する概念

environment は独自の secret を保持し、deployment を駆動し、手動リリースのための workflow_dispatch と自然に組み合わさります。

重要なポイント

  • environment は名前付きの deploy 先です。
  • スコープされた secret と保護ルールを持ちます。
  • 保護ルールはジョブ実行前に承認を要求できます。

関連ガイド