Open1
GitHub Actions で特定の変数の値に応じて条件分岐して他の変数を生成する方法
GitHub Actions のワークフローでは、特定の変数の値に基づいて他の変数を生成するために、ステップと env
や outputs
フィールドを使用することができます。
以下に例を示します:
name: Branching based on a variable value
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Set variable value
id: setvar
run: |
if [ "${{ github.event_name }}" == "push" ]; then
echo "::set-output name=ACTION_TYPE::deploy"
else
echo "::set-output name=ACTION_TYPE::test"
fi
- name: Use variable
run: echo "The action type is ${{ steps.setvar.outputs.ACTION_TYPE }}"
この例では、まず setvar
ステップで特定の条件 (github.event_name
が "push" か否か) に基づいて変数 ACTION_TYPE
を設定しています。そして次のステップでその値を使用しています。
ここでは、"push" イベントが発生した場合、ACTION_TYPE
は "deploy" になり、それ以外の場合(たとえば "pull_request" イベント)では "test" になります。
このパターンを使用して、任意の複雑さの条件に基づいて変数を設定し、それらを後続のステップで使用することができます。ただし、各ステップが自身のシェル環境を持っているため、一つのステップで設定した環境変数はそのステップ内でのみ利用可能で、他のステップでは直接アクセスできません。そのため、変数を後続のステップで利用するためには ::set-output name=...::...
構文を使用してステップのアウトプットとして設定する必要があります。