ログをグループ化する
GitHub Actionsのログは実行内容が多いと縦に長くなり、目的の箇所を探しづらい。
::group::と::endgroup::のワークフローコマンドを使うと、ログを折りたたみ可能なブロックにまとめられる。
使い方
echoで::group::グループ名を出力してから、ログをまとめたい範囲の最後で::endgroup::を出力する。
- name: Group logs
run: |
echo "::group::hoge"
echo "line1"
echo "line2"
echo "line3"
echo "::endgroup::"
実行結果はhogeを見出しとした折りたたみブロックになり、クリックすると中のline1〜line3が展開される。
複数のグループを作る
::group::と::endgroup::は1ステップの中に複数回書ける。
- name: Multiple groups
run: |
echo "::group::setup"
echo "setup step1"
echo "setup step2"
echo "::endgroup::"
echo "::group::build"
echo "build step1"
echo "build step2"
echo "::endgroup::"
処理のまとまりごとにグループ化すると、ログ全体の見通しがよくなる。
実際にGitHub Actions上で実行すると、以下のようにsetup・build・testのグループが並び、必要なグループだけを開いて中身を確認できる。

注意点
::group::はネストできない。
グループの中で別の::group::を開始すると、先に開いていたグループは自動的に閉じられ、ネストした::group::が終了した時点で再開される。
複数のグループに分ける場合は、フラットな構造で並べるとよい。
用途
::group::によるグループ化は、以下のようなログが長くなりがちな処理で役立つ。
- 依存パッケージのインストールログ
- テストの実行結果
- Terraformの
plan結果
ログの本文自体は減らないが、折りたたんでおけば必要な箇所だけをすぐに確認できる。
