🐡
GitHub Actionsで手動でワークフローを実行する際のenvironmentパラメータを使ってみる
初めに
2021年11月10日に、GitHub Actionsの手動ワークフロー実行時の入力タイプが追加されました。
その中のenvironmentタイプについて、なにがうれしいのか実際に使ってみて確認してみたいと思います。まずenvironmentとは
主な使い方としては、環境ごとに異なるシークレットをenvironmentに紐づけて管理することができます。
例えば、以下のようにdevとprodというenvironmentを用意しておいて、それぞれにsecret名をTOKENとして、各環境のTOKENの中身を登録しておきます。
そして、ワークフロー内でenvironmentを指定することで、使用するsecretを切り替えることができます。
environment | secret名 | value |
---|---|---|
dev | TOKEN | xxxxxxxxx |
prod | TOKEN | yyyyyyyyyy |
これによって、ワークフローの記述が簡潔になり、environmentがprodの時はワークフロー実行時にレビュー担当者の承認を必要とする設定などができるようになります。
アップデート以前
入力タイプのアップデート以前は、環境ごとに共通のワークフローを使用する場合、Stringのinputでenvironmentを指定していたので、typoしたり、存在しないenvironment名を指定してしまう可能性がありました。
アップデート後
今回のアップデートで、workflow_dispatch
のinputs
をtype: environment
とすると、すでに設定されているenvironment名が自動でプルダウン表示されるようになりました。
これによって、存在しないenvironmentを指定してしまうことが無くなります。
- environmentの登録
今回はdevとprodを登録。secret名はどちらもTOKEN
としておきます。
- ワークフローの作成
- inputsのenvironmentを
type: environment
にする - jobs.show-input.environmentを
${{ github.event.inputs.environment }}
としてinputsパラメータを参照する -
echo ${{ secrets.TOKEN }}
すると、environmentで指定した環境のTOKENが出力される
name: environment input test
on:
workflow_dispatch:
inputs:
environment:
type: environment
jobs:
show-input:
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.environment }}
steps:
- name: show token
run: |
echo ${{ secrets.TOKEN }}
Discussion