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 と保護ルールを持ちます。
- 保護ルールはジョブ実行前に承認を要求できます。
関連ガイド
What Is a Deployment in GitHub Actions?A deployment in GitHub Actions is a tracked release to an environment, recording status and history so you ca…
What Is a GitHub Actions Secret?A GitHub Actions secret is an encrypted variable for sensitive values like API keys, available to workflows a…
What Is the workflow_dispatch Event in GitHub Actions?workflow_dispatch is a trigger that lets you run a GitHub Actions workflow manually from the UI or API, optio…
What Is a Required Status Check in GitHub Actions?A required status check is a CI check that must pass before a pull request can merge, enforced by branch prot…