sue445 さんも書いていたが ruby/rubygems の CI は 1cycle が 50-60分かかり、本当に効率が悪くメインメンテナである自分でも嫌になるくらい遅い。
以前に小池さんが、雑にテストを半分ずつ消してそれぞれを別の runner で動かしたら実行時間が半分になった、みたいなことをどこかで話していたのを思い出して、似たようなことをやったら 50 分の実行時間が 20 分になった。
https://github.com/ruby/rubygems/pull/9158
まず rspec --profile 10000 とか数字は適当に入れて全てのテストを実行した上で実行時間を stdout から手に入れて、それを gemini などに食わせて均等な実行時間になるようにテストファイルを分類、その分類で RSpec.describe にタグを a-d で割り振って実行してみたら1/4にはならないものの、1/3くらいにはなった。
その後に gemini に、テストファイルを変更しないでタグをつける方法はないのか、と探させたら define_derived_metadata でできるよ、というのを見つけてきたので pull-request にあるような実装で spec_helper.rb の修正だけでなんとかなってしまった。最高。
ちょっとオフィスに行く用事があり、あれこれした後になんか食べるかなあ、田町なんもないな...となったのでミッドタウンまでちょっと足を伸ばしてきた。
昼時だったからか、いつものレストラン通りは混みまくっていたので、21_21 側にあるハンバーガーショップでハンバーガーを食べた。
そのあとはサントリー美術館でやっている根来の漆器展示をさらっとみた後に、虎屋などで買い物をしてから帰宅。外に出るから、と外食に行こうとするとどこも混みすぎて「家でなんか食べてればいいや...」って気持ちが高まり続ける。