前ステップの値を参照する
後ステップで参照するための設定
参照されるステップは以下のようにする。
- 後続のステップから参照するために
idをつける。 変数名=値をechoして$GITHUB_OUTPUTに出力する
例として以下のように記述する。
jobs:
test-job:
- name: setup vars
id: setup-vars
run: |
echo "foo=FOO" >> $GITHUB_OUTPUT
echo "bar=BAR" >> $GITHUB_OUTPUT
TODAY=$(date +"%Y-%m-%d")
echo "baz=${TODAY}" >> $GITHUB_OUTPUT
上記のように変数=値は複数指定できる。
前ステップの値を参照するための設定
参照する側は ${{ steps.ステップのid.outputs.変数名 }} で参照できる。
例として上記のステップの値を参照する場合は以下のように記述する。
上記ではidはsetup-varsとしたので${{ steps.setup-vars.outputs.変数名 }}で参照できる。
...
- name: echo vars
run: |
echo ${{ steps.setup-vars.outputs.foo }}
echo ${{ steps.setup-vars.outputs.bar }}
echo ${{ steps.setup-vars.outputs.baz }}
全体像
name: test
on:
workflow_dispatch:
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: setup vars
id: setup-vars
run: |
echo "foo=FOO" >> $GITHUB_OUTPUT
echo "bar=BAR" >> $GITHUB_OUTPUT
TODAY=$(date +"%Y-%m-%d")
echo "baz=${TODAY}" >> $GITHUB_OUTPUT
- name: echo vars
run: |
echo ${{ steps.setup-vars.outputs.foo }}
echo ${{ steps.setup-vars.outputs.bar }}
echo ${{ steps.setup-vars.outputs.baz }}
古い記述方法
以下のように::set-outputを使った方法でも記述できる。
ただし2023年6月1日以降廃止になるので注意。
- name: setup vars
id: setup-vars
run: |
echo "::set-output name=foo::FOO"
echo "::set-output name=bar::BAR"
