🐞

GitHub Actions の composite で環境変数をセットする方法

2022/03/16に公開

問題点

GitHub Actions で環境変数を用意したいとする。

ドキュメント には以下のように記述することで環境変数が設定できると書かれている。

inputs:
  numOctocats:
    description: 'Number of Octocats'
    required: false
    default: '1'
  octocatEyeColor:
    description: 'Eye color of the Octocats'
    required: true

上記の YAML を定義すると INPUT_NUMOCTOCATSINPUT_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_NUMOCTOCATSINPUT_OCTOCATEYECOLOR が使えるようになった。

ちなみにここでは composite ではない場合の自動生成と同じ環境変数名にしているが、同じにする必要は特にない。

脚注
  1. 細かいルールは次のとおり。1. INPUT_ という接頭辞がつく。2. すべて大文字に自動変換される。3. スペースは _ に自動変換される。つまり今回の場合、numOctocats の部分が NUMOCTOCATS に変換され、先頭に INPUT_ が付与され INPUT_NUMOCTOCATS となる。octocatEyeColor も同様。 ↩︎

GitHubで編集を提案

Discussion