やりたいこと
GithubActionsワークフローの、step間や、job間で、前に定義した値を次step/jobで使うように共有したい。
やりかた
step間の値の共有
-
$GITHUB_ENV
を使用する。
jobs:
sample-job:
runs-on: ubuntu-latest
steps:
- name: Set value
run: echo "HOGE=hoge" >> $GITHUB_ENV
- name: Use value
run: echo "HOGE: ${{ env.HOGE }}"
# >> HOGE: hoge
job間の値の共有
- step間での共有は
$GITHUB_ENV
でできていたが、jobが異なると$GITHUB_ENV
は使えない。 - 2022年10月リリースの
$GITHUB_OUTPUT
を使用する。- 今までは
set-output
が使用されていたが、こちらは2023年5月31日をもって完全に使用できなくなるとのこと。 - 公式ブログ
- 今までは
jobs:
job1:
runs-on: ubuntu-latest
outputs:
hoge: ${{ steps.set_outputs.outputs.hoge }}
fuga: ${{ steps.set_outputs.outputs.fuga }}
steps:
- id: set_outputs
name: Set outputs
run: |
echo "hoge=hoge" >> $GITHUB_OUTPUT
echo "fuga=fuga" >> $GITHUB_OUTPUT
job2:
runs-on: ubuntu-latest
needs: job1
steps:
- name: Use outputs
run: |
echo "hoge: ${{ needs.job1.outputs.hoge }}"
echo "fuga: ${{ needs.job1.outputs.fuga }}"