🐡
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