事件
GitHub Actionsで実行しているジョブが終了せずに6時間消費してしまう事件がありました。
ログを見たところdotnet test
の実行中で止まっていたようです。
根本法な原因はわかりません。
知りたいこと
GitHub Actionsは使用時間によって課金されます。
度々起きて、実際の恩恵以上にコストが掛かるのはうれしくありません。
一定時間を過ぎたらエラーになるように、タイムアウトを設定したいです。
時間で課金するサービスなので、タイムアウトの設定はできるはずです。
しかし、どこにどうやって設定するのかわかりません。
ChatGPTを使って調査
今までは公式ドキュメントを探したり、技術ブログを探したりしていました。
今回はChatGPTに質問してみます。
timeout-minutes
というプロパティを使えばよさそうです。
ChatGPTは時々嘘をつきます。
公式情報をみて確認してみましょう。
つづけてChatGPTに聞いてみます。
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes を見ると良いようです。
URLを開きます。
英語です。
DeepLで翻訳します。
確かにtimeout-minutes
というプロパティを使えばよさそうです。
ついでにデフォルト値が360であることがわかりました。
なるほど、それで件のジョブ6時間で終了したようです。
動作確認
設定方法がわかったので、実際にGitHub ActionsのYAMLファイルを書き換えて動作するか確かめてみます。
確かめると言ってもタイムアウトすることを確認するのは難しいです。
エラーが起きないことを確認します。
タイムアウト時間が設定通りになるかは、ジョブがいくつか実行されるうちにいつか今回と同じ事象が起きて確認できるでしょう。
まとめ
ここまで30分掛かりました。
従来通り公式ドキュメントを探したり、技術ブログを探したりしたら1時間掛かったのではないでしょうか?
知りたい内容に当たりがついていて、確認するだけの調査にはChatGPTが有効に使えそうです。