CIジョブの実行時間集計

GitHub Actions のジョブ別の所要時間を集計する。

GitHub Actions の jobs API の応答(JSON)を貼り付けると、ジョブ名ごとの回数・合計・平均・最大の所要時間を表にします。未完了のジョブは除きます。入力は端末の外へ送信しません。

ツールを使う 入力例と結果

ジョブの所要時間を集計する

入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。

結果

エラー 0 件・警告 0 件・情報 2 件

指摘(エラー・警告・情報)

  • 情報 jobs[3] 「test」は completed_at が null(未完了)なので集計から除きました。
  • 情報 全体 時刻は RFC 3339 の date-time として解析し、所要時間は completed_at − started_at です。平均・最大は秒未満を四捨五入して表示します。
集計したジョブ3 件
除いたジョブ1 件
ジョブ名の数2 種類
所要時間の合計16分0秒

ジョブ別の所要時間

ジョブ別の所要時間
ジョブ名回数合計平均最大
test110分0秒10分0秒10分0秒
build26分0秒3分0秒3分30秒

初期表示は入力例「build と test の 2 種類(1 件は実行中)」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。

ご利用にあたって

  • 平均は秒未満を四捨五入した表示です。
  • 認証情報を含む出力(ヘッダーなど)は貼り付けないでください。

使い方

  1. GitHub の API(または gh api の出力)で取得した jobs の JSON を貼り付けます。
  2. 表で、ジョブ名ごとの回数・合計・平均・最大の所要時間を確認します。
  3. 合計が大きいジョブから、短縮できる工程(キャッシュ、並列化など)を検討します。
  4. 指摘で、未完了や時刻が読めなくて除いたジョブを確認します。

入力例と結果

代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。

入力例と結果の一覧
入力例結果
build と test の 2 種類(1 件は実行中)エラー 0 件・警告 0 件・情報 2 件
タイムゾーンのオフセットと 1 時間超エラー 0 件・警告 0 件・情報 1 件
平均の四捨五入エラー 0 件・警告 0 件・情報 1 件
完了が開始より前・時刻の形が違う(壊れた入力)エラー 0 件・警告 2 件・情報 1 件

このツールでできないこと(制約)

よくある質問

トークンを貼り付けても大丈夫ですか?

貼り付ける必要はありません。この道具は JSON の中の時刻と名前だけを読みます。認証情報は API を呼ぶ側で使い、貼り付けるのは応答の JSON だけにしてください。

複数の実行をまとめて集計できますか?

できます。複数の実行の jobs の配列を 1 つの配列にまとめて貼り付けると、同じ名前のジョブをまとめて回数・合計・平均・最大を出します。

入力した内容は送信されますか?

処理はお使いのブラウザの中だけで行い、貼り付けた内容をサーバーや第三者へ送信・保存しません。ページは通信を禁止する設定で配信しています。