取り敢えず各ジョブの中で使うやつ
構文があまり直感的でなく地味にハマる
目次
サンプルコード
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 }}
解説
jobs
セクションで変数定義を行う
outputs:
変数名: ''
id
付きのsteps
のrun
で値を吐くための標準出力を変数に設定するecho "::set-output name=変数名::標準出力"
- 注意点として
""
で括る必要があるため、$1
などを利用するケースではエスケープが必要になるケースがある
- 注意点として
- 次の形式で吐き出せる
echo ${{ steps.変数を設定したID.outputs.変数名 }}
- シェル変数にセットする場合は展開させてやる
foo=$(echo ${{ steps.変数を設定したID.outputs.変数名 }})