GitHub Actionsのワークフローで変数を利用する

取り敢えず各ジョブの中で使うやつ
構文があまり直感的でなく地味にハマる

サンプルコード

perl で標準入力をいじった結果を変数に入れる場合の例

name: variable example
on:
  workflow_dispatch:
jobs:
  ubuntu-testing:
    outputs:
      foo: ''
    runs-on: ubuntu-latest
    steps:
      - name: clone repository
        uses: actions/checkout@v2
      - id: branch-name
        run: echo "::set-output name=foo::echo $GITHUB_REF | perl -nle '/aa\-([^\/]+)/; print \$1;'"
      - name: disp
        run: echo ${{ steps.branch-name.outputs.foo }}

解説

  1. jobs セクションで変数定義を行う

outputs:
  変数名: ''
  1. id 付きの stepsrun で値を吐くための標準出力を変数に設定する
    1. echo "::set-output name=変数名::標準出力"
      1. 注意点として "" で括る必要があるため、$1 などを利用するケースではエスケープが必要になるケースがある
  2. 次の形式で吐き出せる
    1. echo ${{ steps.変数を設定したID.outputs.変数名 }}
  3. シェル変数にセットする場合は展開させてやる
    1. foo=$(echo ${{ steps.変数を設定したID.outputs.変数名 }})