🏗️

GitHub Actionsでブランチに応じてenvironmentを切り替える

2024/02/06に公開

GitHub Actionsにはenvironmentという便利機能があります。これはdevelopment環境やstaging/production環境ごとに秘匿情報や環境変数を定義して使い分けることができます。environmentという単語が環境変数と混同しやすくややこしいですが、これは環境そのものの大きな単位になります。

このenvironmentをブランチ名に応じて切り替える方法の紹介です。

ブランチ名とenvironment名が異なる場合

デプロイアクションで、main staging release ブランチにプッシュされたらデプロイする。その際に利用するenvironmentを条件分岐させたい場合はこのような書き方になります。

  • release ブランチなら production 環境
  • staging ブランチなら staging 環境
  • それ以外(実質 main ブランチ)なら develop 環境
name: Deploy

on:
  push:
    branches:
      - release
      - staging
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    environment: |-
      ${{
         github.ref_name == 'release' && 'production'
      || github.ref_name == 'staging' && 'staging'
      ||                                 'development'
      }}
    steps:
      - name: debug
        run: echo ${{ github.ref_name }}, ${{ vars.FOO_BAR }}

ブランチ名とenvironment環境名が一致する場合

この場合はシンプルです。

name: Deploy

on:
  push:
    branches:
      - release
      - staging
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    environment: ${{ github.ref_name }}
    steps:
      - name: debug
        run: echo ${{ github.ref_name }}, ${{ vars.FOO_BAR }}
ムーザルちゃんねる

Discussion