🐞
GitHub Actions の composite で環境変数をセットする方法
問題点
GitHub Actions で環境変数を用意したいとする。
ドキュメント には以下のように記述することで環境変数が設定できると書かれている。
inputs:
numOctocats:
description: 'Number of Octocats'
required: false
default: '1'
octocatEyeColor:
description: 'Eye color of the Octocats'
required: true
上記の YAML を定義すると INPUT_NUMOCTOCATS や INPUT_OCTOCATEYECOLOR という変数が使えるようになる[1]、とのこと。
しかし、残念ながらこれは composite の場合は使えない。
解決策
ここ に書かれているとおり、env を使って自分で定義すると良いとのこと。
inputs:
numOctocats:
description: 'Number of Octocats'
required: false
default: '1'
octocatEyeColor:
description: 'Eye color of the Octocats'
required: true
runs:
using: 'composite'
steps:
- run: echo ${INPUT_NUMOCTOCATS}, ${INPUT_OCTOCATEYECOLOR}
shell: sh
env:
INPUT_NUMOCTOCATS: ${{ inputs.numOctocats }}
INPUT_OCTOCATEYECOLOR: ${{ inputs.octocatEyeColor }}
これで環境変数 INPUT_NUMOCTOCATS と INPUT_OCTOCATEYECOLOR が使えるようになった。
ちなみにここでは composite ではない場合の自動生成と同じ環境変数名にしているが、同じにする必要は特にない。
-
細かいルールは次のとおり。1.
INPUT_という接頭辞がつく。2. すべて大文字に自動変換される。3. スペースは_に自動変換される。つまり今回の場合、numOctocatsの部分がNUMOCTOCATSに変換され、先頭にINPUT_が付与されINPUT_NUMOCTOCATSとなる。octocatEyeColorも同様。 ↩︎
Discussion