
GitHub Actions入門 choice型パラメータで動物園をつくってみた
こんにちは!製造ビジネステクノロジー部の小林です。
GitHub Actionsを手動で実行する際に、choice型パラメータを使うと、下図のようにプルダウンメニューから選択肢を選べます。
今回は、このchoice型についての理解を深めるため、調査と簡単なハンズオンをやってみました。
このハンズオンでは、好きな動物を選択するとその鳴き声を出力するシンプルなワークフローを作成します!
やりたいこと
- choice型について調査
- choice型を使ったワークフローを作ってみる
- メニューから動物を選択をしてワークフローを実行すると、その動物の鳴き声がログに表示される
GitHub Actionsのchoice型とは?
GitHub Actionsでは、ワークフローを手動で実行する際に、workflow_dispatchイベントを使用して入力パラメータを定義できます。その中でもchoice型は、ユーザーが事前に定義された選択肢からオプションを選べるようにする機能です。
ブラウザから実行する場合、入力部分はドロップダウンメニューになるので入力しやすく便利です。
例えば次のように使います。
on:
workflow_dispatch:
inputs:
parameter_name: # 入力パラメータの識別子
description: '選択肢から選んでください'
required: true # 必須かどうか
type: choice # 型をchoiceに指定
options: # 選択肢を配列で指定
- option1
- option2
- option3
ブラウザで確認
choice型を使って嬉しいことは、ワークフローの実行時にドロップダウンメニューから選択できるようになり、ユーザーの入力ミスを防ぐ、入力の手間を省く、などがあると思います。
ドロップダウンメニューで選択した情報をワークフロー内で使用する
ドロップダウンメニューで選択した情報は、ワークフロー内で下記のように取得できます。
${{ github.event.inputs.<入力パラメータの識別子> }}
下記は公式からの引用です。
ワークフローは、github.event.inputs コンテキスト内の入力も受け取ります。 inputs コンテキストと github.event.inputs コンテキストの情報ですが、inputs コンテキストではブール値が文字列に変換されず、ブール値として保持されます。 choice 型は文字列に解決され、1 つの選択可能なオプションです。
choice型使用したワークフローをつくってみた
では、実際にchoice型を使用したワークフローを作ってみます。
リポジトリのルートに.github/workflowsディレクトリを作成し、その中にanimal-sound.ymlというファイルを作成します。
name: 動物の鳴き声
on:
workflow_dispatch:
inputs:
animal:
description: '好きな動物を選んでください'
required: true
type: choice
options:
- 犬
- 猫
- 鳥
- カエル
jobs:
make-sound:
runs-on: ubuntu-latest
steps:
- name: 動物の鳴き声を出力
run: |
if [ "${{ github.event.inputs.animal }}" == "犬" ]; then
echo "ワンワン!🐕"
elif [ "${{ github.event.inputs.animal }}" == "猫" ]; then
echo "ニャー!🐱"
elif [ "${{ github.event.inputs.animal }}" == "鳥" ]; then
echo "チュンチュン!🐦"
elif [ "${{ github.event.inputs.animal }}" == "カエル" ]; then
echo "ケロケロ!🐸"
fi
シンプルですね!このワークフローファイルを詳しく見ていきます。
ワークフロー名の定義
name: 動物の鳴き声
これはGitHub Actionsタブに表示されるワークフロー名です。
トリガーの設定
on:
workflow_dispatch:
workflow_dispatchは手動でワークフローを実行するためのトリガーです。このイベントを使うことで、GitHub UIから直接ワークフローを実行できます。
入力パラメータの定義:
inputs:
animal:
description: '好きな動物を選んでください'
required: true
type: choice
options:
- 犬
- 猫
- 鳥
- カエル
ここでchoice型を使用して、4つの動物(犬、猫、鳥、カエル)から選択できるようにしています。required: trueは、このパラメータが必須であることを示しています。
ジョブの定義
jobs:
make-sound:
runs-on: ubuntu-latest
make-soundという名前のジョブを定義し、Ubuntu最新バージョンの仮想環境で実行するよう指定しています。
ステップの定義
steps:
- name: 動物の鳴き声を出力
run: |
if [ "${{ github.event.inputs.animal }}" == "犬" ]; then
echo "ワンワン!🐕"
elif [ "${{ github.event.inputs.animal }}" == "猫" ]; then
echo "ニャー!🐱"
elif [ "${{ github.event.inputs.animal }}" == "鳥" ]; then
echo "チュンチュン!🐦"
elif [ "${{ github.event.inputs.animal }}" == "カエル" ]; then
echo "ケロケロ!🐸"
fi
このステップでは、選択された動物に応じて異なる鳴き声を出力します。${{ github.event.inputs.animal }}は、ユーザーが選択した動物の値を参照しています。これはコンテキストと呼ばれるGitHub Actionsの機能を使用しています。
ワークフローを実行してみる
ワークフローファイルをリポジトリにプッシュした後、以下の手順で実行してみます。
Acrtionsのコンソールを開き、ワークフロー「動物の鳴き声」 → Run worlflow → 犬を選択 → Run workflowを選択するとワークフローが実行されます。
ワークフロー実行中
実行完了。犬が鳴いてますね!
全ての動物を選択して動作を確認する
猫
鳥
カエル
全ての動物たちを呼び出せました。
choice型の活用シーン
今回は、choice型の動作確認ということで簡単な使い方をしましたが、以下のようなシーンで特に役立つかもしれません。
- デプロイブランチの選択
- 環境の選択: 開発、テスト、本番など、デプロイ先の環境を選択する
- バージョンの選択: 使用するソフトウェアのバージョンを選択する
おわりに
GitHub Actionsのchoice型入力パラメータを使うことで、ワークフローの実行をより直感的で使いやすくすることができます。今回のハンズオンでは、シンプルな「動物の鳴き声」ワークフローを通じて、choice型の基本的な使い方を学びました。
この記事がchoice型を利用したワークフローの構成を検討されている方の参考になれば幸いです。