🚀
GitHub ActionのGITHUB_OUTPUTをまるっと取り扱う
複数のジョブでGITHUB_OUTPUTに値を格納して、最終的にGITHUB_STEP_SUMMARYへ出力するような時に使った。
GitHub Actions
こんな感じで取れる。
toJSON(needs.do-output.outputs)
が大事で、outputを抜き出してJSONにすることでハンドリングしやすくする。
jobs:
do-output:
runs-on: ubuntu-latest
outputs:
HOGE: ${{ steps.step1.outputs.hoge }}
FUGA: ${{ steps.step2.outputs.fuga }}
steps:
- id: step1
run: echo "hoge=hogehoge" >> $GITHUB_OUTPUT
- id: step2
run: echo "fuga=fugafuga" >> $GITHUB_OUTPUT
print-output:
runs-on: ubuntu-latest
needs: do-output
steps:
- uses: actions/github-script@v7
env:
outputs: ${{ toJSON(needs.do-output.outputs) }}
with:
script: |
const outputs = JSON.parse(process.env.outputs)
for (const key in outputs) {
console.log(`${key} -> ${outputs[key]}`)
}
- run: echo '${{ toJSON(needs.do-output.outputs) }}' | jq .
Discussion