概要
github.*
などのgithubコンテキストの値を単品でechoするのは簡単でしたが、オブジェクトのままダンプするのは意外と手こずってしまったのでメモ。
失敗例
echo '${{ github }}'
だとObject
で表示されてしまいます。
.github/workflows/dump-value.yml
on:
push:
pull_request:
jobs:
dump-value:
name: dump-value
runs-on: ubuntu-latest
steps:
- name: echo github
run: echo '${{ github }}'
- name: echo github.event_name
run: echo '${{ github.event_name }}'
pushで起動した場合
pull_requestで起動した場合
対応
echo '${{ toJSON(github) }}'
に置き換えるとJSON形式で出力されます。
.github/workflows/dump-value.yml
on:
push:
pull_request:
jobs:
dump-value:
name: dump-value
runs-on: ubuntu-latest
steps:
- name: echo github
run: echo '${{ toJSON(github) }}'
- name: echo github.event_name
run: echo '${{ github.event_name }}'
余談
値をダンプできるとpush
とpull_request
でgithubコンテキストの値が異なるのがよくわかりますね。
.github/workflows/dump-value.yml
on:
push:
pull_request:
jobs:
dump-value:
name: dump-value
runs-on: ubuntu-latest
steps:
- name: echo github.event_name
run: echo '${{ github.event_name }}'
- name: Dump github.event.head_commit
run: echo '${{ toJSON(github.event.head_commit) }}'
- name: Dump github.event.pull_request
run: echo '${{ toJSON(github.event.pull_request) }}'
pushで起動した場合
pull_requestで起動した場合
参考
GitHub Actions/Learn GitHub Actions/Contexts 例: ログへのコンテキスト情報の出力
https://docs.github.com/ja/actions/learn-github-actions/contexts#example-printing-context-information-to-the-log
GitHub Actions/Learn GitHub Actions/Expressions toJSON
https://docs.github.com/ja/actions/learn-github-actions/expressions#tojson