Ruby の Windows CI が軒並み遅くなっていて、全てのジョブが1時間以上を要するようになっていたので真面目に調べた。最初は Arm のビルドをするようにしたので初回だけかな、とか Arm だけかな、とか思ったら全ジョブで遅くなっていた。
主に時間が増加しているのは予想通り vcpkg のビルドで、これは actions/cache ではなく vcpkg に built-in されているキャッシュ機能を使っていたんだけど1週間前には
Restored 8 package(s) from GitHub Actions Cache in 5.4 s. Use --debug to see more details.
としてバイナリを restore できていたものが
Restored 0 package(s) from GitHub Actions Cache in 2.6 s. Use --debug to see more details.
と全部失敗してしまっている。いろいろ設定を試しても
Completed submission of openssl:x64-windows@3.4.0 to 0 binary cache(s) in 2.8 s
という感じでビルド後のキャッシュ保存にひたすら失敗し続ける、という状況でどうにもわからんとなったので actions/cache
を使って以下のように腕力でキャッシュするようにしてしまった。
- name: Restore vcpkg artifact
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: C:\Users\runneradmin\AppData\Local\vcpkg\archives
key: windows-${{ matrix.os }}-vcpkg-${{ hashFiles('src/vcpkg.json') }}
path に指定しているのは vcpkg がローカルでキャッシュとして restore するファイルの保存先で、キーは OS と vcpkg.json というマニフェストファイル。最初はアーキテクチャの arm64 と x64 だけでいいじゃん、と指定したものの vcpkg は VS のバージョンで区別するっぽく、VS 2019 と VS 2022 とで作成したバイナリにキャッシュ再利用としての互換がなく常にビルドしてしまっていたので OS を指定した。
これで 20-40min かかっていた vcpkg のジョブが 10sec くらいまで元通り短縮されたのでよかった。これ2-3日くらい調べ続けていたので解決してよかったけど、異様に時間かかったなあ。
コミックで数巻まで読んでいた鬼ゴロシという暴力ボコボコ漫画が Netflix 映像化されたのでみた。
https://www.netflix.com/title/81566553
コミックを最後まで読んでないのでストーリーが踏襲されたものなのかはわからないけど、序盤であるとか人間関係については独自アレンジした、という内容ではあった。長編ドラマ、としては完結していてよかったと思う。
マーベルみたいに全部見ないとよくわからんのだが、というのに比べると、こういうシュッと眺めることができるやつは良い。
PS5 Pro を買ってから引退した slim タイプの PS5 は外付けディスクドライブをつけて Blu-ray プレイヤーとして使おうと思ったまま、いまだに定価で買えない状態だったものの、定価より20%くらい高いが3000円ならもういいと買ってしまった。
初期セットアップは Sony のアカウントでログインしたのと自動ログインをオンにしただけで何もなし。これでディスク付きの初期モデルを引退できそう。slim と比較してちょっとの差分しかないけど、TV の近くに置くにはちょっとでかいな、という感じだったので改善されてよかった。
【純正品】ディスクドライブ(CFI-ZDD1J) PlayStation 5
ソニー・インタラクティブエンタテインメント
¥11,980
https://bugs.ruby-lang.org/issues/21258 に詳細は書いたのだけど、流石にそろそろ Ruby から CGI ライブラリを引退させたい。昨年いくつか脆弱性対応で CGI ライブラリをいじったのだけど、2025年やぞ、って感じ。
ただ CGI.escape
などがあちこちで使われていて、ただ消しただけだとなかなか厳しいなあ、って状況なので URI
の下に移動した方がいいのでは、とか CGI.escape
などだけ残す?とかその辺が今後やる必要があるので調査をしつつ、ちょくちょくと修正を入れている。
https://github.com/ruby/ruby/pull/13164
とりあえず CGI.escape
などの仲間たちは cgi
じゃなくて cgi/util
を require すれば他の不要なメソッドを load せずに使うことができるので、上のように修正していた。次は URI
に存在するメソッドに置き換えても問題ないじゃん?とかやっていくところかなあ...。
Disney+ でアイアンマン2に続けて3も見た。最後にアイアンマン軍団がやってきて戦った、という記憶しかなかったので2からのつながりや、エンドゲームでペッパーがなんか凄かったのはそういうことだったの?とか思いつつ、ラストで治療済み、とかなって「そんな...」となってしまった。
アベンジャーズを理解するには、この間を埋めるような映画をひたすら見ないとダメなんだろうなあ。次は多分キャプテン・アメリカシリーズ。
来月、万博に行くのに合わせて京都、奈良、大阪と国宝を中心とした展覧会に行くのに合わせて図鑑NEOシリーズの新作のはじめての国宝を読んだ。
国宝図鑑であるとか、展覧会はあちこちに行ってるけど「そうだったんだ!」みたいな内容も結構あって読み応えがあってよかった。図鑑、面白いものだなあ。
メインの Windows マシンをリニューアルしたのに合わせて、RailsGirls で使っている法人口座を使うために必要な PC に保存する証明書を取得し直した。
これ、以前はインターネットのサービス上で証明書取得のためのダミーユーザーを作った上で、管理者自身に証明書再発行の手続きをそのダミーユーザーで実施すれば事足りたはずなのに、今は使えなくなっていて身分証明、および証明書再発行の申請書を「紙」で用意して郵送しないとダメ、という厳しい感じだった。とはいえ、これをやらないとインターネットから何もできないのでしょうがなく対応した。
法人の口座だから、個人でやってるようなあれこれで雑にするわけにはいかず、というところなんだろうけど流石に PDF をダウンロードして印刷、捺印は厳しいのでなんとかなってほしい。