🏗️
GitHub Actionsでブランチに応じてenvironmentを切り替える
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