🐞
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