トップ «前の日記(2025/06/22 (日) ) 最新 次の日記(2025/06/24 (火) )» 編集 RSS feed

HsbtDiary


2025/06/23 (月) [長年日記]

vcpkg のキャッシュが効かなくなっていたので直していた

1-2週間前から ruby/ruby の Windows CI で動かしている vcpkg のキャッシュが効いたり効かなかったりして一回のビルドとテストが 25分くらいで終わるはずのものが55分くらいかかっているので調べていた。

一部だけ一部だけ効くパターンだと

The following packages are already installed:
    gmp:x64-windows@6.3.0#2
    libffi:x64-windows@3.4.6
  * vcpkg-cmake:x64-windows@2024-04-23
  * vcpkg-cmake-config:x64-windows@2024-05-23
  * vcpkg-cmake-get-vars:x64-windows@2024-09-22
The following packages will be rebuilt:
    libyaml:x64-windows@0.2.5#5
    openssl:x64-windows@3.4.0
    zlib:x64-windows@1.3.1

のように libyaml, openssl, zlib などだけがリビルドとなっていて、どうにも安定した結果にならなくて全くわからなかったので一度キャッシュを全部消して、再作成したら無事効くようになった。そんな感じなので原因は全くわからないけど、おそらく runner のベース image のランタイムなどが変わって、ビルド済みの dll がビルド済み、と処理されずにリビルドされていた、とかそんなあたりかなあ...。

あと、この vcpkg のキャッシュは以下のように組み込みのキャッシュはなくなってしまうらしい。

%VCPKG_BINARY_SOURCES%: warning: The 'x-gha' binary caching backend has been removed. Consider using a NuGet-based binary caching provider instead, see extended documentation at https://learn.microsoft.com/vcpkg/users/binarycaching?WT.mc_id=vcpkg_inproduct_cli.
  on expression: clear;x-gha,readwrite

上とは関係なく actions/cache を使った独自キャッシュにしたので影響はないけど、こういうのを機能から消されるとしんどいから、もう少し安定させて欲しいなあ。

PAT を全部 classic から fine-grained にした

いつも使っている GitHub の PAT を classic でなんでも ok!みたいな権限のものから fine-grained で必要最小のスコープにしたのをぽちぽち作っては入れ替えというのをしていた。自分の PAT が漏れると ruby/ruby やあらゆるところを破壊できるので気をつけなくてはいけない。

で、fine-grained PAT を真面目に調べていたんだけど、hsbt/* なリポジトリは自由自在なものの、ruby/* に対して何かをする PAT を作るときにはいちいち owner に request を出して承認、scope や対象の repo を変えたら再リクエストして承認、というのを知らなくて、なんで 403 で効かんのだ、と数時間試行錯誤していた。辛い。

あと、ghcr への docker image 登録などは classic PAT を使い続けないとダメぽく、撲滅しようと思っていたけどそれはできなかった。この辺は自分よりも、matzbot などで最小スコープで作らせた方がいいんだろうか。うーん。