[{"data":1,"prerenderedAt":247},["ShallowReactive",2],{"content-/excel-course-ci-e2e-hang-timeout":3,"all-pages-for-dir":225,"related-/excel-course-ci-e2e-hang-timeout":226,"og-image-/excel-course-ci-e2e-hang-timeout":246},{"id":4,"title":5,"body":6,"category":207,"concepts":208,"description":209,"extension":210,"meta":211,"navigation":184,"ogImage":208,"path":212,"project_name":213,"published":214,"publishedAt":215,"seo":216,"source":217,"stem":218,"tags":219,"todo":208,"unpublished":214,"updatedAt":208,"__hash__":224},"pages/2026-10/2026-10-03/excel-course-ci-e2e-hang-timeout.md","GitHub ActionsのCIが9/24から通らなかった件、最大の原因はE2Eの6時間ハングだった",{"type":7,"value":8,"toc":196},"minimark",[9,14,18,21,26,29,32,44,48,51,64,67,73,76,79,90,97,100,104,111,114,118,128,143,146,149,152,170,173],[10,11,13],"h1",{"id":12},"github-actionsのciが924から通らなかった件","GitHub ActionsのCIが9/24から通らなかった件",[15,16,17],"p",{},"Excel講座のリポジトリ（eurekapu-nuxt4）で、GitHub Actions の CI のワークフロー欄が落ちていた。\n「そういえばね」と切り出して、Claude Code に調べてもらった。",[15,19,20],{},"いつから落ちていて、なぜ落ちるのか。\n頼んだ時点では、どちらも分かっていなかった。",[22,23,25],"h2",{"id":24},"最後に通ったのは-924","最後に通ったのは 9/24",[15,27,28],{},"調べてもらうと、原因は3種類に分かれていた。\nまず、6時間でタイムアウトした回がどのステップで止まったのかを追ってもらった。",[15,30,31],{},"次に出てきたのは日付だった。\nCI が最後に通ったのは 9/24 で、それ以降は一度も成功していない。\nそこから何が変わって落ち始めたのかを確かめてもらった。",[15,33,34,35,39,40,43],{},"目星がついたのは、9/26 のコミット ",[36,37,38],"code",{},"b9b404ac"," である。\ndev scene API の子プロセスを ",[36,41,42],{},"detached"," にした変更で、続けて裏付けも取ってもらった。",[22,45,47],{"id":46},"毎回6時間ハングしていた-e2e","毎回6時間ハングしていた E2E",[15,49,50],{},"3つの原因のうち一番の問題は、このコミットが入れた E2E のハングだった。",[52,53,54,58,61],"ul",{},[55,56,57],"li",{},"9/26 の夜から14回、E2E がハングしていた",[55,59,60],{},"どの回も、6時間でタイムアウトするまで止まらなかった",[55,62,63],{},"そのたびに、Actions の分数を大量に使っていた",[15,65,66],{},"提案された対応には「OKで進めてください」と返した。\nあわせて、メモを残すように頼んだ。",[68,69,70],"blockquote",{},[15,71,72],{},"今回の対応については、メモに一応残しといてくださいね。これ原因が何だったかと、どういう対応をするかについて。",[22,74,75],{"id":75},"修正前の失敗を手元で再現してから直す",[15,77,78],{},"修正は、失敗を手元で再現するところから進めてもらった。",[52,80,81,84,87],{},[55,82,83],{},"E2E のハング：修正前は watcher が残り、修正後は終了することを再現で確かめた",[55,85,86],{},"ユニットテスト：修正し、通ることを確かめた",[55,88,89],{},"トップページの E2E：手元で実行した",[15,91,92,93,96],{},"最終的な報告は「3件とも直した。どれも修正前の失敗を手元で再現したうえで、直ったことを確認した」というものだった。\nハングしたまま走っていた実行 ",[36,94,95],{},"37077625510"," も、キャンセルしてもらった。",[15,98,99],{},"ただし、この時点ではまだコミットも push もしていない。\n手元で直っても、CI 上で最後まで通るかは未確認のままだった。",[22,101,103],{"id":102},"追加で付けた-timeout-minutes-60","追加で付けた timeout-minutes: 60",[15,105,106,107,110],{},"修正の報告のあと、もう1点付けるかどうかを聞かれ、「はい、つけといてください」と答えた。\nこうして付いたのが ",[36,108,109],{},"timeout-minutes: 60"," である。",[15,112,113],{},"今回の修正でハングは解消したはずだ。\nそれでも別の理由で E2E が固まれば、今度は6時間ではなく60分で打ち切られる。",[22,115,117],{"id":116},"コミットと-pushそして-ci-の結果待ち","コミットと push、そして CI の結果待ち",[15,119,120,121,123,124,127],{},"修正3件、メモ、",[36,122,109],{}," をまとめて、コミット ",[36,125,126],{},"6d2a2586"," にしてもらった。\nコミット時の Codex レビューでは、critical と high の指摘は出なかった。",[15,129,130,131,134,135,138,139,142],{},"push すると、未 push だった Excel 関連のコミット5件（",[36,132,133],{},"a34a19fa","〜",[36,136,137],{},"abe9d83a","）も一緒に上がった。\nCI（実行 ",[36,140,141],{},"37091438289","）が動き始め、終わるまで約30分かかる見込みだった。",[15,144,145],{},"ここで「このセッションもう終わりにしても大丈夫ですか？」と聞いた。\n答えは、終わりにしても大丈夫だが、CI はまだ走っている途中で、通るかどうかは確認できていない、というものだった。\nメモの「CI が最後まで通ることを確認する」も、未チェックのまま残っている。\nセッションを閉じれば、結果を待っている処理も止まる。",[15,147,148],{},"9/24 以来はじめて CI が通ったのかどうかは、このセッションの中では分からないままだった。",[22,150,151],{"id":151},"学びメモ",[52,153,154,161,167],{},[55,155,156,157,160],{},"CI の失敗を放っておくと、ハングした回が毎回6時間ぶんの Actions の分数を使う。ジョブに ",[36,158,159],{},"timeout-minutes"," を付けておけば、打ち切りまでの時間に上限を決められる",[55,162,163,164,166],{},"最後に CI が通った日（9/24）を起点に変化を追って、原因のコミット ",[36,165,38],{}," に行き着いた",[55,168,169],{},"修正前の失敗を手元で再現してから直すと、「直った」と言える根拠が手元に残る",[22,171,172],{"id":172},"残っていること",[52,174,177,190],{"className":175},[176],"contains-task-list",[55,178,181,186,187,189],{"className":179},[180],"task-list-item",[182,183],"input",{"disabled":184,"type":185},true,"checkbox"," CI（実行 ",[36,188,141],{},"）が最後まで通ったかを確認する",[55,191,193,195],{"className":192},[180],[182,194],{"disabled":184,"type":185}," 確認できたら、メモの「CI が最後まで通ることを確認する」にチェックを入れる",{"title":197,"searchDepth":198,"depth":198,"links":199},"",2,[200,201,202,203,204,205,206],{"id":24,"depth":198,"text":25},{"id":46,"depth":198,"text":47},{"id":75,"depth":198,"text":75},{"id":102,"depth":198,"text":103},{"id":116,"depth":198,"text":117},{"id":151,"depth":198,"text":151},{"id":172,"depth":198,"text":172},"dev",null,"Excel講座リポジトリのCIが9/24を最後に一度も通っていなかった。原因は3つあり、最大の問題は9/26のコミットが招いたE2Eの6時間ハング。3件を直し、timeout-minutes: 60も付けてpushした記録。","md",{},"/excel-course-ci-e2e-hang-timeout","eurekapu-nuxt4",false,"2026-10-03T00:00:00.000Z",{"title":5,"description":209},"make-diary","2026-10/2026-10-03/excel-course-ci-e2e-hang-timeout",[220,221,222,223,213],"GitHub Actions","CI","E2E","Claude Code","qJKDTaNTsc4C6aLGNQzIQblOZh2hs4l-s7sTMA8aaLM",[],[227,230,234,238,242],{"title":228,"path":229,"publishedAt":215},"2026年10月3日の開発日記 - Excel講座のフィードバック反映と、6時間止まり続けたCI","/2026-10-03-diary",{"title":231,"path":232,"publishedAt":233},"Excel講座の本人音声を全編再合成した日：読み上げ台本を「耳で分かるか」でレビューし、聞いた感想を区間単位で直す","/excel-course-narration-ear-review-feedback","2026-09-23T00:00:00.000Z",{"title":235,"path":236,"publishedAt":237},"設問200問の出自を確かめてから記事化に入った日。指標の列名を直し、執筆と事実確認の順序を入れ替えた記録","/finance-qa-pilot-articles","2026-08-19T00:00:00.000Z",{"title":239,"path":240,"publishedAt":241},"62冊から2,469問を抽出し386問へ束ねるまで。利用枠とコンテキストの残量で作業の区切りを決めた記録","/financial-qa-phase-progress","2026-08-18T00:00:00.000Z",{"title":243,"path":244,"publishedAt":245},"2026年7月20日の開発日記 - 想起で単語を思い出す仕組みと、GPT-5.6 Solの20万トークンの壁","/2026-07-20-diary","2026-07-20T00:00:00.000Z","https://log.eurekapu.com/og/blog/excel-course-ci-e2e-hang-timeout.png?v=2026-10-03T00%3A00%3A00.000Z&title=GitHub%20Actions%E3%81%AECI%E3%81%8C9%2F24%E3%81%8B%E3%82%89%E9%80%9A%E3%82%89%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E4%BB%B6%E3%80%81%E6%9C%80%E5%A4%A7%E3%81%AE%E5%8E%9F%E5%9B%A0%E3%81%AFE2E%E3%81%AE6%E6%99%82%E9%96%93%E3%83%8F%E3%83%B3%E3%82%B0%E3%81%A0%E3%81%A3%E3%81%9F&author=Kei%20Komatsu&sig=b6ec83158d4b24ac",1791066387685]