GitHub Actions Job Summary を使う
はじめに
GitHub Actions にはジョブの実行結果をまとめて表示するための機能として Job Summary を提供しています。
この Job Summary を使用して誰が見てもわかりやすい実行結果を表示する術について、必要最低限をまとめた記事です。
Job Summary とは
GitHub Actions のジョブの実行結果をまとめて表示するための機能です。ジョブの実行中に生成された情報をマークダウン形式で記述し、ジョブの最後にその内容を表示することができます。
GitHub Flavored Markdownというマークダウンの拡張仕様に対応しており、テーブルやリスト、リンクなどを使用して情報を整理できます。
各ステップのMarkdownコンテンツをGITHUB_STEP_SUMMARY
環境変数へ追記することで表示されます。
例
echo "### Hello world! :rocket:" >> $GITHUB_STEP_SUMMARY
actionsのtoolkitを使う方法もあります。
core.summary.addHeading('My Heading', '2')
// Output: <h2>My Heading</h2>
継続して出力したい場合
GITHUB_STEP_SUMMARY
に追記する必要がある場合は>>
でGITHUB_STEP_SUMMARY
に追記できます。
echo "### Hello world! :rocket:" >> $GITHUB_STEP_SUMMARY
Summaryを分けたい場合
GITHUB_STEP_SUMMARY
はジョブ単位で1つなので、複数のSummaryを分けたい場合は複数のジョブに分ける必要があります。
jobs:
job1:
runs-on: ubuntu-latest
steps:
- name: Step 1
run: echo "### Job 1 Summary" >> $GITHUB_STEP_SUMMARY
job2:
runs-on: ubuntu-latest
needs: job1
steps:
- name: Step 2
run: echo "### Job 2 Summary" >> $GITHUB_STEP_SUMMARY
Job Summary の保存期間
GitHub Docs の copilot曰く
ジョブのサマリー(ワークフローで生成されるログ/アーティファクトに含まれる情報)はデフォルトで90日保存されます。保存期間は変更可能です:
公開リポジトリ: 1日〜90日の間で設定可能
非公開リポジトリ: 1日〜400日の間で設定可能
設定はリポジトリ単位または組織単位で行えます。手順(リポジトリの場合):リポジトリのメインページへ移動 → 右上の Settings(歯車)をクリック。
左サイドバーで play(Actions)→ General を選択。
「Artifact and log retention」に新しい日数を入力。
Save をクリック。
Settings → Actions → General → Artifact and log retention で設定できそうでした。(組織に関するDocumentはありました)
Artifact の併用
Job Summary に表示するにはデカいけど、後で見返したいログやファイルなどは Artifact に保存しておくと良いです。
注意点
各ステップのサイズは最大1MiBに制限されているので、大量のログを出力する場合は注意が必要です。
Discussion